Functors contain nested definitions, much like <PRIVATE PRIVATE> blocks.
A new parser will be able to parse nested definitions unambigiously without
knowledge of the definition of <FUNCTOR: itself, which is not the case if
it looks like FUNCTOR: instead.
Fix prettyprinting, introduce sa{ } syntax.
Add broadcastable? check for binary operations.
Add shape of output array for broadcasts.
Check for negative integers in shape.