aboutsummaryrefslogtreecommitdiff
path: root/interp/constrextern.ml
diff options
context:
space:
mode:
Diffstat (limited to 'interp/constrextern.ml')
-rw-r--r--interp/constrextern.ml15
1 files changed, 1 insertions, 14 deletions
diff --git a/interp/constrextern.ml b/interp/constrextern.ml
index b9f22ff006..0ae4c2214c 100644
--- a/interp/constrextern.ml
+++ b/interp/constrextern.ml
@@ -196,22 +196,9 @@ let rec extern = function
| RRec (_,fk,idv,tyv,bv) ->
(match fk with
| RFix (nv,n) ->
- let rec split_lambda binds = function
- | (0, t) -> (List.rev binds,extern t)
- | (n, RLambda (_,na,t,b)) ->
- split_lambda (([loc,na],extern t)::binds) (n-1,b)
- | _ -> anomaly "extern: ill-formed fixpoint body" in
- let rec split_product = function
- | (0, t) -> extern t
- | (n, RProd (_,na,t,b)) -> split_product (n-1,b)
- | _ -> anomaly "extern: ill-formed fixpoint type" in
let listdecl =
Array.mapi
- (fun i fi ->
- let (lparams,def) = split_lambda [] (nv.(i)+1,bv.(i)) in
- let typ = split_product (nv.(i)+1,tyv.(i)) in
- (fi, lparams, typ, def))
- idv
+ (fun i fi -> (fi,nv.(i),extern tyv.(i),extern bv.(i))) idv
in
CFix (loc,(loc,idv.(n)),Array.to_list listdecl)
| RCoFix n ->