diff options
| author | Pierre-Marie Pédrot | 2018-05-29 11:16:32 +0200 |
|---|---|---|
| committer | Pierre-Marie Pédrot | 2018-06-24 18:20:26 +0200 |
| commit | e42b3b188b365159a60851bb0d4214068bb74dd4 (patch) | |
| tree | 2b25564a83d2999a36a74648486b4d3f4ea6d984 /kernel/entries.ml | |
| parent | 567b9b75309ab61130b8e08dd87275d91ed97488 (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.ml | 15 |
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; } |
