5.0.3 [2025.06.17]
- Replace
test-framework with tasty in the test suite.
- Drop support for pre-8.0 versions of GHC.
5.0.2 [2022.05.07]
- Tweak error messages of
fromRight' and fromLeft' for clarity.
- Allow building with
mtl-2.3.*.
5.0.1.1 [2019.05.02]
- Only incur a
semigroups dependency on pre-8.0 GHCs.
5.0.1 [2018.07.03]
- Make the
Semigroup, Apply, and Applicative instances for Validation
lazier.
- Make
vap lazier in its second argument.
- Introduce
vapm, an even lazier version of vap which requires a
Monoid constraint. Also add apm, a counterpart for Validation.
- Use
test-framework and QuickCheck in the test suite.
5
- Changed the semantics of the
Validation Alt and Alternative instances to collect errors.
The previous implementation did not correctly abide the laws.
- Added
vap, for when users want validation like semantics but don't want to convert back and forth to validation all the time. Similarly, added ealt to give either's Alt semantics to validation.
- Dropped the deprecated
Control.Monad.Trans.Either. Use Control.Monad.Trans.Except from transformers and/or
transformers-compat instead.
4.5
- Add
MMonad instance for EitherT
- Deprecate
Control.Monad.Trans.Either in favor of Control.Monad.Trans.Except
- Add
firstEitherT
4.4.1.1
- Fixed building on newer GHCs. (type synonyms require explicit foralls for unused variables these days)
4.4.1
transformers 0.5 support
- Documentation fixes
4.4
4.3.4.1
4.3.4
- Support
bifunctors 5, profunctors 5, and semigroupoids 5.
4.3.3.3
- Fixed and enhanced documentation for
eitherToError.
4.3.3.2
4.3.3.1
4.3.3
4.3.2.1
- Support
monad-control 1.0
4.3.2
4.3.0.2
- Updated MonadRandom support.
4.3.0.1
- Fixed import of
MonadCatch to support versions of base before 4.6
4.3
- Inverted dependency between
free and either.
4.2
- Added instances for
MonadThrow, MonadCatch.
4.1
- Added instances for
MonadBase, MonadBaseControl, and MonadTransControl.
4.0
3.4.2
- Added 'Data.Either.Combinators'.
3.4.1
- Trustworthy despite UndecidableInstances
3.4
- Delegate
fail to the underlying Monad, rather than error.
3.3
- Inverted roles between
Semigroup and Alt. This let us write Alternative and MonadPlus instances that are compatible.
- Removed the
Functor constraint on most instances in exchange for incurring a Monad constraint on Traversable. EitherT
is after all, a Monad transformer first and foremost.
3.2
- Changed the
Semigroup to use a Semigroup to combine Left branches. Left Alt untouched, so you can mix and match.
3.1
- Added instances for
mtl classes and MonadRandom.
- The meaning of
mapEitherT has changed to match mapErrorT in the mtl. The old mapEitherT is now bimapEitherT.
3.0.3