aboutsummaryrefslogtreecommitdiffhomepage
path: root/tactics/geninterp.ml
diff options
context:
space:
mode:
Diffstat (limited to 'tactics/geninterp.ml')
-rw-r--r--tactics/geninterp.ml15
1 files changed, 6 insertions, 9 deletions
diff --git a/tactics/geninterp.ml b/tactics/geninterp.ml
index 0ad3abb53..008075800 100644
--- a/tactics/geninterp.ml
+++ b/tactics/geninterp.ml
@@ -12,11 +12,10 @@ open Genarg
module TacStore = Store.Make(struct end)
type interp_sign = {
- lfun : tlevel generic_argument Id.Map.t;
+ lfun : Val.t Id.Map.t;
extra : TacStore.t }
-type ('glb, 'top) interp_fun = interp_sign ->
- Goal.goal Evd.sigma -> 'glb -> Evd.evar_map * 'top
+type ('glb, 'top) interp_fun = interp_sign -> 'glb -> 'top Ftactic.t
module InterpObj =
struct
@@ -30,9 +29,7 @@ module Interp = Register(InterpObj)
let interp = Interp.obj
let register_interp0 = Interp.register0
-let generic_interp ist gl v =
- let unpacker wit v =
- let (sigma, ans) = interp wit ist gl (glb v) in
- (sigma, in_gen (topwit wit) ans)
- in
- unpack { unpacker; } v
+let generic_interp ist (GenArg (Glbwit wit, v)) =
+ let open Ftactic.Notations in
+ interp wit ist v >>= fun ans ->
+ Ftactic.return (Val.Dyn (val_tag (topwit wit), ans))