diff options
| author | Pierre-Marie Pédrot | 2018-05-29 14:51:49 +0200 |
|---|---|---|
| committer | Pierre-Marie Pédrot | 2018-06-24 18:20:26 +0200 |
| commit | 568f3b69d407f7b5a47d1fdd6ca2bbf3edb5be72 (patch) | |
| tree | 1bb4cc7dfa6976bb530080441ea1b1d448a0ceb4 /kernel/term_typing.ml | |
| parent | e42b3b188b365159a60851bb0d4214068bb74dd4 (diff) | |
Further cleaning of the side-effect API.
We remove internal functions and types from the API.
Diffstat (limited to 'kernel/term_typing.ml')
| -rw-r--r-- | kernel/term_typing.ml | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/kernel/term_typing.ml b/kernel/term_typing.ml index 79511e4253..84fc505c4f 100644 --- a/kernel/term_typing.ml +++ b/kernel/term_typing.ml @@ -27,6 +27,11 @@ module NamedDecl = Context.Named.Declaration (* Insertion of constants and parameters in environment. *) +type side_effect = { + from_env : Declarations.structure_body CEphemeron.key; + eff : side_eff list; +} + module SideEffects : sig type t @@ -66,10 +71,14 @@ type _ trust = | SideEffects : structure_body -> side_effects trust let uniq_seff_rev = SideEffects.repr -let uniq_seff l = List.rev (SideEffects.repr l) +let uniq_seff l = + let ans = List.rev (SideEffects.repr l) in + List.map_append (fun { eff } -> eff) ans let empty_seff = SideEffects.empty -let add_seff = SideEffects.add +let add_seff mb eff effs = + let from_env = CEphemeron.create mb in + SideEffects.add { eff; from_env } effs let concat_seff = SideEffects.concat let mk_pure_proof c = (c, Univ.ContextSet.empty), empty_seff |
