Efficient parsing with parser combinators
Monads for functional programming