deleted dead code (function builtin)
initial refactor away from lists of tokens to streams
refactor type expression parser to remove local mutable state
pull log and expected functions out to top module top-level
add dir for example programs
fix non-exhaustive match in Type.compare

Type.list will treat a non-empty list as "greater" than an empty one
fix non-exhaustive match in Typecheck.applySubToAst

also add Maml module with Maml.CompilerBug exception
delete commented out code
fix non-exhaustive match in Typecheck.prettyPrintConstraint

print user-defined datatypes as Ctor{field,field,...}
add CM artifact to gitignore
fix non-exhaustive match in Typecheck.genCon

fix in nested function `gen` inside genCon, for handling branches of
`case` expression

fix in genCon for handling `let`
fix non-exhaustive match in Typecheck.gettyp

also simplified by calling AST.Expr.getInfo instead
fix non-exhaustive match in Typecheck.assignTypeVars

also add field to AST.Expr.Let for bound variable's position
change some LexicalErrors into CompilerBugs
pretty up lexer tests
change Token.Match to T.Case, eliminate T.With
update header comment for parser module
add header comment about tests/Legacy
split up type checker test helper fns
organize and group typeOf tests