I am trying to wrap my head around writing parser using parsec in Haskell, in particular how backtracking works.
Take the following simple parser: