V_______________________________________________________________ *)
module U = NUri
-module G = Options
+module N = Level
type uri = U.uri
type attrs = attr list (* attributes *)
-type 'term bind = Abst of 'term (* declaration: domain *)
- | Abbr of 'term (* definition: body *)
- | Void (* exclusion *)
+type 'term bind = Abst of N.level * 'term (* declaration: level, domain *)
+ | Abbr of 'term (* definition: body *)
+ | Void (* exclusion *)
type 'term entity = attrs * uri * 'term bind (* attrs, name, binder *)
-type status = {
- delta: bool; (* global delta-expansion *)
- rt: bool; (* reference typing *)
- si: bool; (* sort inclusion *)
- expand: bool (* always expand global definitions *)
-}
-
(* helpers ******************************************************************)
let common f (a, u, _) = f a u
| _ :: tl -> rev_append_names ns tl
let xlate f xlate_term = function
- | a, uri, Abst t ->
- let f t = f (a, uri, Abst t) in xlate_term f t
- | a, uri, Abbr t ->
+ | a, uri, Abst (n, t) ->
+ let f t = f (a, uri, Abst (n, t)) in xlate_term f t
+ | a, uri, Abbr t ->
let f t = f (a, uri, Abbr t) in xlate_term f t
- | _, _, Void ->
+ | _, _, Void ->
assert false
-
-let initial_status () = {
- delta = false; rt = false; si = !G.si; expand = !G.expand
-}
-
-let refresh_status st = {st with
- si = !G.si; expand = !G.expand
-}
-