aboutsummaryrefslogtreecommitdiffhomepage
path: root/kernel/declarations.ml
diff options
context:
space:
mode:
authorGravatar Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr>2017-07-28 14:23:37 +0200
committerGravatar Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr>2017-08-29 17:24:31 +0200
commit37b81fe10d2da12180d96d931ba2b76370e1eea5 (patch)
tree60559a7e8894147a4fb4884d854d9efb4e404a5b /kernel/declarations.ml
parent1974816aca996fe3ee9420b83f11d15923e70fda (diff)
Statically enforcing that module types have no retroknowledge.
Diffstat (limited to 'kernel/declarations.ml')
-rw-r--r--kernel/declarations.ml7
1 files changed, 6 insertions, 1 deletions
diff --git a/kernel/declarations.ml b/kernel/declarations.ml
index 1b32d343e..e17fb1c38 100644
--- a/kernel/declarations.ml
+++ b/kernel/declarations.ml
@@ -259,7 +259,7 @@ and 'a generic_module_body =
set of all universes constraints in the module *)
mod_delta : Mod_subst.delta_resolver; (**
quotiented set of equivalent constants and inductive names *)
- mod_retroknowledge : Retroknowledge.action list }
+ mod_retroknowledge : 'a module_retroknowledge }
(** For a module, there are five possible situations:
- [Declare Module M : T] then [mod_expr = Abstract; mod_type_alg = Some T]
@@ -278,6 +278,11 @@ and module_body = module_implementation generic_module_body
and module_type_body = unit generic_module_body
+and _ module_retroknowledge =
+| ModBodyRK :
+ Retroknowledge.action list -> module_implementation module_retroknowledge
+| ModTypeRK : unit module_retroknowledge
+
(** Extra invariants :
- No [MEwith] inside a [mod_expr] implementation : the 'with' syntax