Fix being overly strict on the left hand side of opcodes
Fix minor string formatting error
Fix sealer/unsealer type
Fix purification of void types
Use a single hashtable for all purify calls
Reduce allocations in show for Type and RawType
Unpack contents of Term and Var to reduce memory use
Only call opType when needed
Add InterList
Fix InterList.reverse
Fix bug where blocks were not type checked
Make commonFrontier and unify take RNodes
Remove use of MVector
Move colour escapes into variables
Some work on designing the pre-typecheck peephole optimiser
Add basic infrastructure for pre-typecheck peephole optimiser.
Use an IntMap instead of an assoc list for opcodes in the parser
Implement pre-typechecking peephole optimiser
Actually run peephole optimiser before typechecking