aboutsummaryrefslogtreecommitdiff
path: root/vernac/declareInd.ml
diff options
context:
space:
mode:
authorMaxime Dénès2020-01-30 08:33:36 +0100
committerMaxime Dénès2020-01-30 08:33:36 +0100
commit504f3d6842fa91cdb3f5df1712c0fbb0c9bde112 (patch)
tree55d8bd378801fe69eb32a31eb3d26cfd7bc325c8 /vernac/declareInd.ml
parentd05e061cafc543955700dcbd7fb0f15495efad13 (diff)
parentc2341feb58a233598658eeb68a08395b12715b2a (diff)
Merge PR #11307: Remove the hacks relying on hardwired libobject tags.
Reviewed-by: maximedenes
Diffstat (limited to 'vernac/declareInd.ml')
-rw-r--r--vernac/declareInd.ml11
1 files changed, 9 insertions, 2 deletions
diff --git a/vernac/declareInd.ml b/vernac/declareInd.ml
index 2375028541..7dd53564cc 100644
--- a/vernac/declareInd.ml
+++ b/vernac/declareInd.ml
@@ -60,9 +60,9 @@ let cache_inductive ((sp, kn), names) =
let discharge_inductive ((sp, kn), names) =
Some names
-let inInductive : inductive_obj -> Libobject.obj =
+let objInductive : inductive_obj Libobject.Dyn.tag =
let open Libobject in
- declare_object {(default_object "INDUCTIVE") with
+ declare_object_full {(default_object "INDUCTIVE") with
cache_function = cache_inductive;
load_function = load_inductive;
open_function = open_inductive;
@@ -71,6 +71,7 @@ let inInductive : inductive_obj -> Libobject.obj =
discharge_function = discharge_inductive;
}
+let inInductive v = Libobject.Dyn.Easy.inj v objInductive
let cache_prim (_,(p,c)) = Recordops.register_primitive_projection p c
@@ -212,3 +213,9 @@ let declare_mutual_inductive_with_eliminations ?(primitive_expected=false) mie p
if mie.mind_entry_private == None
then Indschemes.declare_default_schemes mind;
mind
+
+module Internal =
+struct
+ type nonrec inductive_obj = inductive_obj
+ let objInductive = objInductive
+end