local g = name_generator("tst")
assert(g:next() == name("tst", 0))
assert(g:next() == name("tst", 1))
assert(g:prefix() == name("tst"))
local cg = g:mk_child()
assert(cg:prefix() == name("tst", 2))
assert(cg:next() == name("tst", 2, 0))
assert(cg:next() == name("tst", 2, 1))
assert(cg:next() == name("tst", 2, 2))
assert(g:next() == name("tst", 3))
assert(is_name_generator(g))
