aboutsummaryrefslogtreecommitdiffhomepage
path: root/pretyping/evd.mli
diff options
context:
space:
mode:
authorGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2011-12-16 15:09:07 +0000
committerGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2011-12-16 15:09:07 +0000
commit6c21af13a66a8fd829979476205e32df9e8c0f49 (patch)
tree9f3634f39cbeeefff29877db39a353b63c598bc5 /pretyping/evd.mli
parentec60cad947dc4267f0545626b4ec7145f19f3ee3 (diff)
Introducing a notion of evar candidates to be used when an evar is
known in advance to be instantiable by only a finite number of terms. When an evar with candidates remain unsolved after unification, the first candidate is taken as a heuristic. This is used in particular to reduce the number of pending conversion problems when trying to infer the return clause of a pattern-matching problem. As an example, this repairs test 2615.v. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@14797 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'pretyping/evd.mli')
-rw-r--r--pretyping/evd.mli3
1 files changed, 2 insertions, 1 deletions
diff --git a/pretyping/evd.mli b/pretyping/evd.mli
index feddb908e..55c54f2c6 100644
--- a/pretyping/evd.mli
+++ b/pretyping/evd.mli
@@ -117,6 +117,7 @@ type evar_info = {
evar_body : evar_body;
evar_filter : bool list;
evar_source : hole_kind located;
+ evar_candidates : constr list option;
evar_extra : Store.t }
val eq_evar_info : evar_info -> evar_info -> bool
@@ -195,7 +196,7 @@ val defined_evars : evar_map -> evar_map
val fold_undefined : (evar -> evar_info -> 'a -> 'a) -> evar_map -> 'a -> 'a
val evar_declare :
named_context_val -> evar -> types -> ?src:loc * hole_kind ->
- ?filter:bool list -> evar_map -> evar_map
+ ?filter:bool list -> ?candidates:constr list -> evar_map -> evar_map
val evar_source : existential_key -> evar_map -> hole_kind located
(* spiwack: this function seems to somewhat break the abstraction.