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!

Reply via email to