c = context()
assert(c:is_empty())
print(c)
e = context_entry("x", Const("N"))
assert(e:get_name() == name("x"))
assert(e:get_domain() == Const("N"))
assert(not e:get_body())
print(e:get_body())
c = context(c, e)
print(c)
assert(not c:is_empty())
c = context(c, "y", Const("M"))
assert(#c == 2)
assert(c:size() == 2)
e, c1 = lookup(c, 0)
assert(c1:size() == 1)
assert(e:get_name() == name("y"))
c = context(c, "z", Const("N"), Const("a"))
print(c)
check_error(function() lookup(c, 10) end)
assert(lookup(c, 0):get_body() == Const("a"))
assert(not is_context_entry(c))
assert(is_context(c))
assert(is_context_entry(e))
assert(not is_context_entry(c))
