The next 700 data description languages
Monadic Parsing in Haskell