! Unit Test: { [ "m1x" ] [ Cb new m1 ] } ! fails. ! A ROLE tree doesn't seem to provide method overriding? IN: exploring-workaround USING: kernel prettyprint tools.test ; USE: roles FROM: roles => TUPLE: ; ROLE: Cxr ; ROLE: Car ; TUPLE: Ca <{ Car } ; ROLE: Cbr <{ Car Cxr } ; TUPLE: Cb <{ Cbr } ; ROLE: Ccr <{ Cbr } ; TUPLE: Cc <{ Ccr } ; GENERIC: m1 ( a -- b ) M: Car m1 drop "m1a" ; M: Cxr m1 drop "m1x" ; [ "m1a" ] [ Ca new m1 ] unit-test [ "m1x" ] [ Cb new m1 ] unit-test [ "m1x" ] [ Cc new m1 ] unit-test : f1a ( -- o ) Ca new m1 ; : f1b ( -- o ) Cb new m1 ; : f1c ( -- o ) Cc new m1 ; [ "m1a" ] [ f1a ] unit-test [ "m1x" ] [ f1b ] unit-test [ "m1x" ] [ f1c ] unit-test