Parse rewritten to be monadic