Incorporated changes based on better understanding of how translation to and from C is supposed to work.
- Cache string form of GEN.
- Lots of code rearranging.