Things to do:

o Need more tests! More tests for each type of operand per operator.

o Add function declarations.

o Add selective specification {in perl: lvalues}

o APL should be fairly whitespace agnostic - (Need TODO tests). Right now,
  extraneous whitespace around operators is a syntax error.

o clean up the tools/ script so non-generated code is moved into a .pir file.

o While the PMC can handle arbitrarily dimensioned vectors, we don't print
  them properly; nor do we print nested arrays properly. (Need TODO tests.)

o More type issues: Given the APL code:

  FOO ← 2 4⍴⍳8
1 2 3 4
5 6 7 8
  ≡ FOO
1
  ⍴⊂FOO

  ⍴⍴⊂FOO
0
  ≡⊂FOO
2

... How do we store ⊂FOO? It's a scalar (shape), but contains a matrix (depth).
Perhaps a ref type of some kind? Or should we try to make APLVector deal with
this?
