implement the monad operations on Parser
Add a way to emulate do notation