Wrote three optimizations to the new parser. (1) 'Dao.NewParser.GenToken' now has two new constructors, a constructor that stores a single 'Prelude.Char' rather than a full string, and a constructor that stores only the token type and no characters or strings, which may save a lot of memory during lexical analysis.  (2) There is now a simple cache that stores the next token in the stream after a look-ahead so the next look-ahead or shift operation can occur more quickly.  (3) The newtypes 'Dao.NewParser.GenParseTable' and 'Dao.NewParser.GenParseTableElem' types have been added to allows you to easily create a parse table which associates token types to parsers. Internally, "Data.Array.IArray" is used to construct these tables so creating tables. Using 'Dao.NewParser.evalParseTable', the next token is shifted from the stream, it's type is used to select the next token from the array in constant-time, and the next parser is evaluated using the string stored in the token (if any). Efficiency will be greatly improved with constant-time look-ups and a smaller memory footprint for tokens.