myParser :: Parser Int myParser = do a <- parser1 b <- parser2 -- parser2 should get the same input as parser1 -- so how do I backtrack parser2 if parser1 succeeded? case (a, b) of undefined