aboutsummaryrefslogtreecommitdiffhomepage
path: root/interp/genintern.ml
diff options
context:
space:
mode:
authorGravatar Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr>2014-08-29 15:52:49 +0200
committerGravatar Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr>2014-08-29 18:43:06 +0200
commite3f2781feb49325615affaaef2853c56874e6c22 (patch)
treeb555e77cb1833390eb37a67731a4f34a1a030885 /interp/genintern.ml
parent029f850bceb1f68640fe7b703b0875ad02486691 (diff)
Simplification of Genarg unpackers.
Instead of having a version of unpackers for each level, we use a dummy argument to force unification of types.
Diffstat (limited to 'interp/genintern.ml')
-rw-r--r--interp/genintern.ml10
1 files changed, 5 insertions, 5 deletions
diff --git a/interp/genintern.ml b/interp/genintern.ml
index a8f82d998..b066ca529 100644
--- a/interp/genintern.ml
+++ b/interp/genintern.ml
@@ -39,11 +39,11 @@ let intern = Intern.obj
let register_intern0 = Intern.register0
let generic_intern ist v =
- let unpack wit v =
- let (ist, v) = intern wit ist v in
+ let unpacker wit v =
+ let (ist, v) = intern wit ist (raw v) in
(ist, in_gen (glbwit wit) v)
in
- raw_unpack { raw_unpack = unpack; } v
+ unpack { unpacker; } v
(** Substitution functions *)
@@ -51,7 +51,7 @@ let substitute = Subst.obj
let register_subst0 = Subst.register0
let generic_substitute subs v =
- let unpack wit v = in_gen (glbwit wit) (substitute wit subs v) in
- glb_unpack { glb_unpack = unpack; } v
+ let unpacker wit v = in_gen (glbwit wit) (substitute wit subs (glb v)) in
+ unpack { unpacker; } v
let () = Hook.set Detyping.subst_genarg_hook generic_substitute