Print errors more nicely
Flatten lets only during JavaScript generation
Nicer pretty printing and a special variable to "Save the Environment"
Use letters for arguments in adt constructors
Add CSaveEnv, optimize CAnd, make it prettier

CSaveEnv is a special constraint that indicates that the current
environment should be saved for later use.

(/\) now optimizes away arguments that are already CTrue.
Change the representation of SolverState to have a "saved environment", recognize the "Save the Environment" variable
Stop creating types for ADT's, use Constant and Flexible in the right place
Switch from [Def t v] to (LExpr t v) for program representation
Save the current environment on CSaveEnv
Start using Data.Graph to work out dependency problems and other minor tweaks

Print out the saved type environment, and get things working with the
program field in MetadataModule.