local s = sexpr(Local("a", Prop), Local("b", Prop))
print(s)
local a, b = s:fields()
print(a)
print(b)
assert(a ~= Local("a", Prop))
assert(a:to_external() == Local("a", Prop))
assert(a:fields() == Local("a", Prop))
assert(is_expr(a:to_external()))

local s = sexpr(Local("a", Prop), Local("b", Prop))
local s = sexpr({})

local s1 = sexpr(Local("a", Prop), Local("b", Prop))
local s2 = sexpr(Local("a", Prop), Local("c", Prop))
assert(Local("b", Prop) > Local("c", Prop))
assert(s1 > s2)
assert(s2 < s1)
assert(s2 == sexpr(Local("a", Prop), Local("c", Prop)))