------------
Code Colours
------------
In order to parse an APL expression we need to know the "kinds" of any names
it contains: array, function, monadic-operator or dyadic operator.

As an example, the following line has different interpretations depending on
whether the names "print" and "title" refer to arrays, functions or operators:

    report ← lines print title pages

To enhance readability, the convention used to display code in these pages is:

                Kind  Font    Colour
                ----  ----    ------
               array  normal  black
            function  italic  black
    monadic-operator  italic  medium blue
     dyadic-operator  italic  lighter blue

Kind-colouring the sample line above shows various different interpretations.
In particular, it helps to highlight functions and operators:

    report ← lines print title pages   ⍝ function print with right argument pair

    report ← lines print title pages   ⍝ monadic function title

    report ← lines print title pages   ⍝ monadic operator title

    report ← lines print title pages   ⍝ dyadic operator print

    reportlines print title pagesreport is a function train (fork)

In addition to names, parentheses and curly braces use the same colour scheme to
indicate the kind of expression they contain. There is one exception: only curly
braces that define operators are italicised.  This means that braces that define
functions are in normal font, leaving the emphasis for in-line operator definit-
ions.

    (+⌿÷⍵)+(+⌿÷≢)(⍣≡)⍺{⍺}{⍺ ⍺⍺ ⍵}{⍺ ⍺⍺ ⍵⍵ ⍵}{⍵}⍵

Notice how italic parentheses help to identify function trains.

Names and parentheses whose kind cannot be inferred are coloured red.

    rand(1+⍺⍺)     ⍝ operand ⍺⍺ may be array or function

See →kk← for discussion and details.