classA {# must be filled in by the class which will inherit it method abstract() { die 'Unimplemented' };# can be overridden in the class, but that's not mandatory method concrete() { say '# 42' };}classSomeClass<<A { method abstract() { say "# made concrete in class" }}var obj =SomeClass.new;obj.abstract();# made concrete in classobj.concrete();# 42