begun haskell implementation - lexer complete