(* note : ufficial basic lambda-delta *)
module E = Entity
+module N = Level
type uri = E.uri
type id = E.id
type attrs = E.attrs
-type bind = Void (* *)
- | Abst of term (* type *)
- | Abbr of term (* body *)
+type bind = Void (* *)
+ | Abst of N.level * term (* level, type *)
+ | Abbr of term (* body *)
and term = Sort of attrs * int (* attrs, hierarchy index *)
| LRef of attrs * int (* attrs, position index *)
(* Currified constructors ***************************************************)
-let abst w = Abst w
+let abst n w = Abst (n, w)
let abbr v = Abbr v
let bind a b t = Bind (a, b, t)
-let bind_abst a u t = Bind (a, Abst u, t)
+let bind_abst n a u t = Bind (a, Abst (n, u), t)
let bind_abbr a v t = Bind (a, Abbr v, t)