| C.Prod (n,s,t) as orig ->
let s1 = f k s in let t1 = f (g (n,C.Decl s) k) t in
if t1 == t && s1 == s then orig else C.Prod (n,s1,t1)
| C.Prod (n,s,t) as orig ->
let s1 = f k s in let t1 = f (g (n,C.Decl s) k) t in
if t1 == t && s1 == s then orig else C.Prod (n,s1,t1)