- Possible alternatives
`ap :: P (a->b) -> P a -> P b`

`>>= :: P a -> (a->P b) -> P b`

`pair :: P a -> P b -> P (a,b)`

- Monadic parsing combinators?
- No!
- With >>= you can do more than context-free grammars.
- Static analysis of the grammar (extracting the documentation, for example) becomes difficult...