diff options
-rw-r--r-- | contrib/extraction/mlutil.ml | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/contrib/extraction/mlutil.ml b/contrib/extraction/mlutil.ml index 6b0213c67..792952ac3 100644 --- a/contrib/extraction/mlutil.ml +++ b/contrib/extraction/mlutil.ml @@ -180,8 +180,9 @@ let rec betaiota = function (match nb_occur t with | 0 -> betaiota (MLapp (ml_pop t, List.tl a')) | 1 -> betaiota (MLapp (ml_subst (List.hd a') t, List.tl a')) - | _ -> betaiota (MLletin (id, List.hd a', - MLapp (t, List.map (ml_lift 1) (List.tl a'))))) + | _ -> + let a'' = List.map (ml_lift 1) (List.tl a') in + betaiota (MLletin (id, List.hd a', MLapp (t, a'')))) (* application of a let in: we push arguments inside *) | MLletin (id,e1,e2) -> MLletin (id, e1, betaiota (MLapp (e2, List.map (ml_lift 1) a'))) |