To the best of my knowledge: On Thu, 18 May 2017 03:52:42 -0700, elizabeth wrote: > Should this work? If not, why not?
No, because the symbol is lexical to the compunit. It's the same as how you won't be able to access subs or `my` constants or variables, unless you make them `our` or export them. > What would be the way to inherit from lexical classes in other compunits? One way would be to export them: ./A.pm6: my class A is export {} ./B.pm6: my class B { use A; also is A; } say B.^mro; $ ./perl6 -I. -MB -e '' ((B) (A) (Any) (Mu)) You can also use export sub: ./A.pm6: sub EXPORT { Map.new: 'A' => my class A {} } Or (I'm unsure what the end goal here is), take a special export arg and only export the class if it's present: ./A.pm6: sub EXPORT ($secret-password?) { Map.new: ( 'A' => my class A { } if $secret-password ~~ 42 ) } ./B.pm6: my class B { use A; also is A; } say B.^mro; $ ./perl6 -I. -MB -e '' ===SORRY!=== Error while compiling /home/zoffix/CPANPRC/rakudo/B.pm6 (B) 'B' cannot inherit from 'A' because it is unknown. at /home/zoffix/CPANPRC/rakudo/B.pm6 (B):3 Now change ./B.pm6 to: my class B { use A 42; also is A; } say B.^mro; $ ./perl6 -I. -MB -e '' ((B) (A) (Any) (Mu))