(zero) (one) (two) (three) ... work properly

This was a major revamp of the core of the compiler. The changes mean
that I won't have to write gui code in RACKET!