1. 7

I wrote a little gist describing advanced use of monad transformer stacks in Haskell to analyze how parser combinators work.

  1.  

  2. 4

    Two very interesting parser combinators with quite different approaches are trifecta and attoparsec. Trifecta tries much more to be a “user-friendly” parser with nice error messages, graceful failure, and generally pretty diagnostics, where Attoparsec just goes really really fast. The source code for both is relatively approachable after this, and highly recommended reading.