local v=require("typedef_inherit")

local a = v.Foo()
local b = v.Bar()
local x = v.do_blah(a)
assert(x == "Foo::blah")
x = v.do_blah(b)
assert(x == "Bar::blah")
local c = v.Spam()
local d = v.Grok()
x = v.do_blah2(c)
assert(x == "Spam::blah")
x = v.do_blah2(d)
assert(x == "Grok::blah")
x = d:far1()
assert(x == "Spam::far1")
