Haskell/Monadic parser combinators

Monads provide a clean means of embedding a domain specific parsing language directly into Haskell without the need for external tools or code generators.