diff options
Diffstat (limited to 'interp')
| -rw-r--r-- | interp/implicit_quantifiers.ml | 6 | ||||
| -rw-r--r-- | interp/implicit_quantifiers.mli | 4 |
2 files changed, 8 insertions, 2 deletions
diff --git a/interp/implicit_quantifiers.ml b/interp/implicit_quantifiers.ml index c029550a13..4799eb7b39 100644 --- a/interp/implicit_quantifiers.ml +++ b/interp/implicit_quantifiers.ml @@ -99,7 +99,7 @@ let combine_params avoid applied needed = match app, need with [], need -> let need', avoid = ids_of_named_context_avoiding avoid (List.map snd need) in - List.rev ids @ (List.map mkIdentC need'), avoid + List.rev ids @ (List.rev_map mkIdentC need'), avoid | _, (true, (id, _, _)) :: need -> let id' = next_ident_away_from id avoid in aux (CRef (Ident (dummy_loc, id')) :: ids) (Idset.add id' avoid) app need @@ -130,7 +130,9 @@ let full_class_binders env l = (try let c = class_info (snd id) in let args, avoid = combine_params avoid l - (List.rev_map (fun x -> false, x) c.cl_context @ List.rev_map (fun x -> true, x) c.cl_super @ List.rev_map (fun x -> false, x) c.cl_params) + (List.rev_map (fun x -> false, x) c.cl_context @ + List.rev_map (fun x -> true, x) c.cl_super @ + List.rev_map (fun x -> false, x) c.cl_params) in (iid, bk, CAppExpl (fst id, (None, Ident id), args)) :: l', avoid with Not_found -> unbound_class (Global.env ()) id) diff --git a/interp/implicit_quantifiers.mli b/interp/implicit_quantifiers.mli index 3b9d98652b..d687fe6400 100644 --- a/interp/implicit_quantifiers.mli +++ b/interp/implicit_quantifiers.mli @@ -49,3 +49,7 @@ val nf_named_context : evar_map -> named_context -> named_context val nf_rel_context : evar_map -> rel_context -> rel_context val nf_env : evar_map -> env -> env + +val ids_of_named_context_avoiding : Names.Idset.t -> + Sign.named_context -> Names.Idset.elt list * Names.Idset.t + |
