l = local_context() assert(l:is_nil()) assert(is_local_context(l)) e = mk_inst(1, Const("a")) assert(is_local_entry(e)) assert(e:is_inst()) assert(not e:is_lift()) assert(e:s() == 1) assert(e:v() == Const("a")) assert(e:v() ~= Const("b")) assert(not e:is_lift()) e2 = mk_lift(0, 2); assert(is_local_entry(e2)) assert(not e2:is_inst()) assert(e2:is_lift()) assert(e2:s() == 0) assert(e2:n() == 2) l = local_context(e, l) l2 = local_context(e2, l) assert(l2:head() == e2) assert(l2:tail():head() == e) assert(not l2:is_nil()) assert(is_local_context(l2)) assert(not is_local_entry(l2))