diff options
| author | Emilio Jesus Gallego Arias | 2017-12-27 20:22:23 +0100 |
|---|---|---|
| committer | Emilio Jesus Gallego Arias | 2018-02-28 17:59:12 +0100 |
| commit | 886a9c2fb25e32bd87b3fce38023b3e701134d23 (patch) | |
| tree | 973d6b78a010aae46ca3e7f29a06fde1f14d22c1 /engine/termops.mli | |
| parent | f726e860917b56abc94f21d9d5add7594d23bb6d (diff) | |
[econstr] Continue consolidation of EConstr API under `interp`.
This commit was motivated by true spurious conversions arising in my
`to_constr` debug branch.
The changes here need careful review as the tradeoffs are subtle and
still a lot of clean up remains to be done in `vernac/*`.
We have opted for penalize [minimally] the few users coming from true
`Constr`-land, but I am sure we can tweak code in a much better way.
In particular, it is not clear if internalization should take an
`evar_map` even in the cases where it is not triggered, see the
changes under `plugins` for a good example.
Also, the new return type of `Pretyping.understand` should undergo
careful review.
We don't touch `Impargs` as it is not clear how to proceed, however,
the current type of `compute_implicits_gen` looks very suspicious as
it is called often with free evars.
Some TODOs are:
- impargs was calling whd_all, the Econstr equivalent can be either
+ Reductionops.whd_all [which does refolding and no sharing]
+ Reductionops.clos_whd_flags with all as a flag.
Diffstat (limited to 'engine/termops.mli')
| -rw-r--r-- | engine/termops.mli | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/engine/termops.mli b/engine/termops.mli index a3559a693b..5aa6235f5c 100644 --- a/engine/termops.mli +++ b/engine/termops.mli @@ -76,9 +76,10 @@ val fold_constr_with_full_binders : Evd.evar_map -> (Context.Rel.Declaration.t -> 'a -> 'a) -> ('a -> 'b -> constr -> 'b) -> 'a -> 'b -> constr -> 'b -val iter_constr_with_full_binders : - (Context.Rel.Declaration.t -> 'a -> 'a) -> ('a -> Constr.constr -> unit) -> 'a -> - Constr.constr -> unit +val iter_constr_with_full_binders : Evd.evar_map -> + (rel_declaration -> 'a -> 'a) -> + ('a -> constr -> unit) -> 'a -> + constr -> unit (**********************************************************************) |
