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 *)
| _ :: 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 () = {