I am pleased to announce that Issue 22 of The Monad Reader is now available.

Issue 22 consists of the following three articles:

Generalized Algebraic Data Types in Haskell by Anton Dergunov

Error Reporting Parsers: a Monad Transformer Approach by Matt Fenwick and Jay Vyas

Two Monoids for Approximating NP-Complete Problems by Mike Izbicki

Feel free to browse the source files. You can check out the entire repository using Git:

git clone https://github.com/ezyang/tmr-issue22.git

If you’d like to write something for Issue 23, please get in touch!

Errata. Unfortunately there were several mistakes in the “Generalized Algebraic Data Types in Haskell” tutorial article which were recently fixed (many thanks to Shachaf Ben-Kiki and vituscze for pointing them out):

1. On page 9 of the article “error” function was used in “evaluate”

function, but in this context “fail” is cleaner.

2. On page 22 there was a typo: shortest paths are those “containing only *red* nodes”.

3. On page 24 we presented two alternative ways to define “Tree” data type: via GADTs and existential types. The latter definition contained an error. Correct definition is:

data Tree a = forall bh. Root (Node a bh)