Minor stylistic changes and typo fixing
Reintroduce dollar constants as a separate lexer token
Refactoring to avoid reconstructing pieces of AST in the compiler
A pattern is now parsed as an expression
Reintroduce pattern matching