compute_letin_type context te,
         List.map (fun x -> compute_letin_type context x) pl)
     | C.Fix (fno,fl) ->
+        let fl =
+         List.map
+          (function (name,recno,ty,bo) ->
+            name,recno,compute_letin_type context ty, bo) fl in
         let tys,_ =
          List.fold_left
           (fun (types,len) (n,_,ty,_) ->
          C.Fix (fno,
           List.map
            (fun (name,recno,ty,bo) ->
-             name, recno,
-             compute_letin_type context ty,
-             compute_letin_type (tys @ context) bo
+             name, recno, ty, compute_letin_type (tys @ context) bo
            ) fl)
     | C.CoFix (fno,fl) ->
+        let fl =
+         List.map
+          (function (name,ty,bo) ->
+            name, compute_letin_type context ty, bo) fl in
         let tys,_ =
          List.fold_left
           (fun (types,len) (n,ty,_) ->
          C.CoFix (fno,
           List.map
            (fun (name,ty,bo) ->
-             name,
-             compute_letin_type context ty,
-             compute_letin_type (tys @ context) bo
+             name, ty, compute_letin_type (tys @ context) bo
            ) fl)
 ;;