haskell Monads for free ekmett/free