Difference between `mtl` and `transformers`
Edward Kmett explains at reddit:
transformersprovides the data types themselves and requires no real language extensions. e.g.
StateT slives here.
mtlprovides a set of classes for the individual effects. e.g.
transformersto allow folks to experiment with different forms of class structures without having to change the actual data types used. (e.g.
monads-tfuses type families rather than fundeps, and some of the effect system folks borrow the underlying data types.)