We don't need both rand and irand

irand was older ; I implemented rand having forgotten about irand. rand
is a few instructions shorter, although it has an additional memory op.
Support >= instead of > operator

Coupled with support for type2 instructions (with the immediate as the
leftmost operator), this improves usability and completeness at the same
time.
Support type2 instructions
Stop permitting illegal right arrows

We were permitting `B -> C + 5` and silently rewriting it as `C <- B`.
We really just want to permit `B -> C` as sugar for `C <- B` (and this
is potentially more trouble than it is worth).