interface IA pass class A implements IA get name as String return .getType.name class B inherits A pass extend A def foo as String return 'foo' extend IA def bar as String return 'bar' class Program def main is shared a = A() assert a.name == 'A' assert a.foo == 'foo' assert a.bar == 'bar' # test interface extension b = B() assert b.name == 'B' assert b.foo == 'foo' # test class inheritance assert b.bar == 'bar' # test base class to interface extension