Parser: change parseExpression' to parseExpression
Parser: Added newtype Promise for encapsulating incomplete state (comments)

This should just be temporary until I prove the concept, but I might decide to keep it in any case to make it explicit how this actually works.
Parser: parseExpression now working with new combinator (comments)

created new p_many1 combinator that can combine partially applied State constructors.  parseExpression can now parse simple expressions again but now with this new combinator
Parser: changed name in p_many1 to show parser is returning a function
Parser: Added new p_splitBy1 combinator (comments)

This combinator allows you to do something like sepBy1 does but what it returns is a function that takes one result and creates a series of Split states that all point to this result.
Parser: now able to parse top level or statements (comments)

Using the new p_splitBy1 combinator I can now split expressions that contain any number of top level or statements.
DUP: this should have been removed sometime sooner
DUP: parseExpression fixed to type T.State Char (happened earlier)
Parser: added new group_index to the state and function to use it
Parser: added group handling (working perfectly)
Parser: added some type signatures now that they're better understood