Parser combinators alone makes monads (or really applicative functors) worth it. But then there are the all the other spectacular things we can do with monads!
The ignore example is just p1 <* p2 in Haskell (that operator is in the standard library).