Generating intermediate code for patterns
- type signatures in "let"
- consolidating pattern cases into single patterns
- simplifying intermediate generator