<div dir="ltr">Hi all,<div><br></div><div>I&#39;ll admit, the original idea for this package was something to place in ACME ;). However, it&#39;s goal is to solve a real problem: the lack of good instances on the Either type. As a brief summary, Either has no Applicative or Monad instances in the base library, has 2 reasonable definitions for Applicative, and there are conflicting orphan instances in the mtl and transformers packages. Also, the ErrorT transformer in those two packages introduces a superclass constraint many people would like to avoid.</div>
<div><br></div><div>neither supplies three datatypes: AEither, MEither and MEitherT. AEither provides the Monoid version of the Applicative instance, MEither is the monadic version, and MEitherT is a monad transformer. The package provides instances for both the transformers and mtl libraries for MonadTrans, MonadIO and MonadCatchIO.</div>
<div><br></div><div>The code is up on github[1], let me know what you think.</div><div><br></div><div>Michael</div><div><br></div><div>[1] <a href="http://github.com/snoyberg/neither">http://github.com/snoyberg/neither</a></div>
<meta http-equiv="content-type" content="text/html; charset=utf-8"></div>