aboutsummaryrefslogtreecommitdiff
path: root/kernel/entries.ml
diff options
context:
space:
mode:
authorPierre-Marie Pédrot2018-05-29 11:16:32 +0200
committerPierre-Marie Pédrot2018-06-24 18:20:26 +0200
commite42b3b188b365159a60851bb0d4214068bb74dd4 (patch)
tree2b25564a83d2999a36a74648486b4d3f4ea6d984 /kernel/entries.ml
parent567b9b75309ab61130b8e08dd87275d91ed97488 (diff)
Share the role type between the implementations of side-effects.
We simply exploit a type isomorphism to remove the use of dedicated algebraic types in the kernel which are actually not necessary.
Diffstat (limited to 'kernel/entries.ml')
-rw-r--r--kernel/entries.ml15
1 files changed, 11 insertions, 4 deletions
diff --git a/kernel/entries.ml b/kernel/entries.ml
index 724ed9ec7d..493550e5e5 100644
--- a/kernel/entries.ml
+++ b/kernel/entries.ml
@@ -120,11 +120,18 @@ type seff_env =
Same as the constant_body's but not in an ephemeron *)
| `Opaque of Constr.t * Univ.ContextSet.t ]
-type side_eff =
- | SEsubproof of Constant.t * Declarations.constant_body * seff_env
- | SEscheme of (inductive * Constant.t * Declarations.constant_body * seff_env) list * string
+type side_effect_role =
+ | Subproof
+ | Schema of inductive * string
+
+type side_eff = {
+ seff_constant : Constant.t;
+ seff_body : Declarations.constant_body;
+ seff_env : seff_env;
+ seff_role : side_effect_role;
+}
type side_effect = {
from_env : Declarations.structure_body CEphemeron.key;
- eff : side_eff;
+ eff : side_eff list;
}