aboutsummaryrefslogtreecommitdiff
path: root/kernel/section.mli
diff options
context:
space:
mode:
authorGaëtan Gilbert2019-10-05 12:06:35 +0200
committerGaëtan Gilbert2019-12-07 22:02:52 +0100
commit88dfc41e23964cb452092deaa67d2ff975ee2b65 (patch)
treea87e121ba83290634a513e87a4dec845e4173365 /kernel/section.mli
parent756d2f4db5eae51c8c01a40550b8c4553bd30f53 (diff)
Section.t is never empty
This approach using `type t = { sec_prev: t option; sec_... }` makes it easy to update sections using the record update syntax, but impossible to statically ensure that an operation only affects the current section. We may instead consider using `type t = section * section list` which needs some boilerplate to update.
Diffstat (limited to 'kernel/section.mli')
-rw-r--r--kernel/section.mli11
1 files changed, 3 insertions, 8 deletions
diff --git a/kernel/section.mli b/kernel/section.mli
index ec863b3b90..fbd3d8254e 100644
--- a/kernel/section.mli
+++ b/kernel/section.mli
@@ -16,13 +16,8 @@ open Univ
type 'a t
(** Type of sections with additional data ['a] *)
-val empty : 'a t
-
-val is_empty : 'a t -> bool
-(** Checks whether there is no opened section *)
-
val depth : 'a t -> int
-(** Number of nested sections (0 if no sections are open) *)
+(** Number of nested sections. *)
(** {6 Manipulating sections} *)
@@ -30,13 +25,13 @@ type section_entry =
| SecDefinition of Constant.t
| SecInductive of MutInd.t
-val open_section : custom:'a -> 'a t -> 'a t
+val open_section : custom:'a -> 'a t option -> 'a t
(** Open a new section with the provided universe polymorphic status. Sections
can be nested, with the proviso that polymorphic sections cannot appear
inside a monomorphic one. A custom data can be attached to this section,
that will be returned by {!close_section}. *)
-val close_section : 'a t -> 'a t * section_entry list * ContextSet.t * 'a
+val close_section : 'a t -> 'a t option * section_entry list * ContextSet.t * 'a
(** Close the current section and returns the entries defined inside, the set
of global monomorphic constraints added in this section, and the custom data
provided at the opening of the section. *)