aboutsummaryrefslogtreecommitdiffhomepage
path: root/engine
diff options
context:
space:
mode:
authorGravatar Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr>2016-04-20 17:24:58 +0200
committerGravatar Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr>2016-05-04 13:47:12 +0200
commit729d838838d8df06395726477817620e2ae998bc (patch)
tree50986942f010f2a9281aa19dd715bd1f67dd921e /engine
parent4740e82e4af6d38e9cc55dfe1a05db87f73bf1e6 (diff)
Interpretation function can return any untyped value.
Diffstat (limited to 'engine')
-rw-r--r--engine/geninterp.ml7
-rw-r--r--engine/geninterp.mli2
2 files changed, 3 insertions, 6 deletions
diff --git a/engine/geninterp.ml b/engine/geninterp.ml
index a3e494f5c..ffc22f221 100644
--- a/engine/geninterp.ml
+++ b/engine/geninterp.ml
@@ -86,16 +86,13 @@ type ('glb, 'top) interp_fun = interp_sign -> 'glb -> 'top Ftactic.t
module InterpObj =
struct
- type ('raw, 'glb, 'top) obj = ('glb, 'top) interp_fun
+ type ('raw, 'glb, 'top) obj = ('glb, Val.t) interp_fun
let name = "interp"
let default _ = None
end
module Interp = Register(InterpObj)
-let interp wit ist v =
- let f = Interp.obj wit in
- let tag = val_tag (Topwit wit) in
- Ftactic.bind (f ist v) (fun v -> Ftactic.return (Val.inject tag v))
+let interp = Interp.obj
let register_interp0 = Interp.register0
diff --git a/engine/geninterp.mli b/engine/geninterp.mli
index c92181027..579986211 100644
--- a/engine/geninterp.mli
+++ b/engine/geninterp.mli
@@ -64,4 +64,4 @@ type ('glb, 'top) interp_fun = interp_sign -> 'glb -> 'top Ftactic.t
val interp : ('raw, 'glb, 'top) genarg_type -> ('glb, Val.t) interp_fun
val register_interp0 :
- ('raw, 'glb, 'top) genarg_type -> ('glb, 'top) interp_fun -> unit
+ ('raw, 'glb, 'top) genarg_type -> ('glb, Val.t) interp_fun -> unit