Mikhail Vorozhtsov | 10 Nov 12:58 2011

[ANN] transformers-base, transformers-abort, monad-abort-fd

Hi Cafe.

I've been using these three small transformer libraries for awhile, so 
it's probably time to announce them.

transformers-base[1] introduces a generalized version of MonadIO, 
MonadBase (BaseM in monadLib terms). It's very useful when you are 
trying to make a stateful API work in both IO and STM (and all 
transformer stacks on top of them).

transformers-abort[2] basically gives you two versions of EitherT, one 
for errors and one for short-circuiting. Includes instances for 
semigroupoids and monad-control classes.

monad-abort-fd[3] is a typical companion auto-lifter package for 
transformers-abort. But it also provides a generalized version[4] of 
Control.Exception which tries to thread effects properly (e.g. 
finalizers can read (if control didn't escape) and modify the state in 

[1] http://hackage.haskell.org/package/transformers-base
[2] http://hackage.haskell.org/package/transformers-abort
[3] http://hackage.haskell.org/package/monad-abort-fd