HaloO, in case someone might be interested, here is my more or less complete idea of the Perl 6 type lattice as ASCII art.
Enjoy. Comments welcome. ::Any ............... | ........................... _______:___________________/|\____:_________ : | : | : | | static type : Package : | : Void ?Bool = context : | : | ____:__|______| : Module : |/ :.........................: ___|___ : | | | : | Class Grammar : | |_______| : | | : | Role : Object Record =::= Frame =::= Dictionary : | : __________/ \_____________________________________ with : | | | | | | invocant(s) : &Code $Item %Hash Frame @Array Tuple : | | |_____|________|_______| block owner : topic | | | $/ : $_ | | | ____:_______/ \_____ ___|________________________ | | : | \ | | | | | | | .Method : Sub \ ->Block \Ref Value Undef Inf Junction | /| : |\ \ | | | / | : | \ \ __________| |_____________________ | Rule | : | Macro \/ | | | | | | |____:_/| Ref[Code] | :Pair /Match/ ~Str +Num | | : | | | | | | Multi : | | | | Int | ..............: | | | | / | | | |___ ___| Enum | | | | \/ | | | | | Entry[::T.does(Hash)] Bit | | _____|__ |___ _________________________| | | | | \/ | =Iterator *List | Pos[::T.does(Str|Array)] | | | | ________________|_________ _____|___________________________________| | | | | \ / | ..Range Pipe Lazy **Eager Ref[Array|Hash] | |______|_____|________|________ _____________________________________| \ / (to | all leafes) \|/ ::All -- $TSa.greeting := "HaloO"; # mind the echo!