Make unions more general.
Finish a first draft of the compiler (but it still needs more work).