fixup: Lexer - generate keyword map from list
Add other whitespace tests
fixup: Lexer - enforce tail recursion for tightly-recursive functions