Reorder the clauses in the Ninja parser
Add a Show instance to the Expr Ninja type
Split the Ninja lexer out into a separate module
Move splitting on | and || from the lexer to the parser
Move reading the file into the lexer
Remove a comment about Parse being the slow point - now it's the lexer (probably)
Update the lexer comment about optimisation
Change to only allowing an actual space instead of calling isSpace, as Ninja does
Rewrite the Ninja lexer to be top-down, enabling more optimisations
Turn on O2 for the lexer, can't hurt