# Pastebin rJL2Gsbu MacBook-Pro-de-Fernando:roles fernando$ cat Foo.pm6 multi trait_mod:(Routine $r, :&command!) is export { $r.wrap: my method (|) { my \rest = callwith self; if ?rest { self.save: command rest } rest } } role Foo { method save (|) { } } MacBook-Pro-de-Fernando:roles fernando$ cat z1.p6 class Bar does Foo { method foo is command{.uc.flip.say} { 'meow' } } Bar.foo: 42 MacBook-Pro-de-Fernando:roles fernando$ perl6 -I. -MFoo z1.p6 WOEM MacBook-Pro-de-Fernando:roles fernando$ cat z2.p6 use Bar; Bar.foo: 42 MacBook-Pro-de-Fernando:roles fernando$ cat Bar.pm6 use Foo; class Bar does Foo { method foo is command{.uc.flip.say} { 'meow' } } MacBook-Pro-de-Fernando:roles fernando$ perl6 -I. -MFoo z2.p6 Cannot invoke this object (REPR: Null; VMNull) in method at /Users/fernando/Tests/roles/Foo.pm6 (Foo) line 3 in block at z2.p6 line 2