aboutsummaryrefslogtreecommitdiff
path: root/pretyping/evarconv.ml
diff options
context:
space:
mode:
authorMatthieu Sozeau2014-11-17 17:26:49 +0100
committerMatthieu Sozeau2014-12-09 15:44:49 +0100
commit745c4e69f5709cc56382b650bbb36b21d3ae0ede (patch)
tree302d2e90b619751b7bcb715013ba3b03116ec8d3 /pretyping/evarconv.ml
parentaf84e080ff674a3d5cf2cf88874ddb6ebaf38ecf (diff)
Setup hook to change the unification algorithm used by evarconv,
e.g. for MTac.
Diffstat (limited to 'pretyping/evarconv.ml')
-rw-r--r--pretyping/evarconv.ml10
1 files changed, 10 insertions, 0 deletions
diff --git a/pretyping/evarconv.ml b/pretyping/evarconv.ml
index 55fd23aa51..f217be7dd1 100644
--- a/pretyping/evarconv.ml
+++ b/pretyping/evarconv.ml
@@ -23,6 +23,9 @@ open Globnames
open Evd
open Pretype_errors
+type unify_fun = transparent_state ->
+ env -> evar_map -> conv_pb -> constr -> constr -> Evarsolve.unification_result
+
let debug_unification = ref (false)
let _ = Goptions.declare_bool_option {
Goptions.optsync = true; Goptions.optdepr = false;
@@ -845,6 +848,13 @@ let evar_conv_x =
Profile.profile6 evar_conv_xkey evar_conv_x
else evar_conv_x
+let evar_conv_hook_get, evar_conv_hook_set = Hook.make ~default:evar_conv_x ()
+
+let evar_conv_x ts = Hook.get evar_conv_hook_get ts
+
+let set_evar_conv f = Hook.set evar_conv_hook_set f
+
+
(* We assume here |l1| <= |l2| *)
let first_order_unification ts env evd (ev1,l1) (term2,l2) =