Improve the foldMap and cutoff functions for
Control.Monad.Free.Church.F, and add a Traversable

Add a MonadBase instance for FreeT

Add a performance test comparing Free and Church interpreters

The use of prelude-extras has been removed. free now uses the
Data.Functor.Classes module to give free’s datatypes instances of Eq1,
Ord1, Read1, and Show1. Their Eq, Ord, Read, and Show instances
have also been modified to incorporate these classes. For example, what
previously existed as:

instance (Eq (f (Free f a)), Eq a) => Eq (Free f a) where

has now been changed to:

instance (Eq1 f, Eq a) => Eq (Free f a) where

Remove redundant Functor constraints from Control.Alternative.Free

4.12.4

Removed a number of spurious class constraints.

Support GHC 8

4.12.3

Support comonad 5

4.12.2

Add instances for ExceptT: like ErrorT, but without an Error constraint.

Support containers

Support transformers 0.5

4.12.1

Support GHC 7.4

4.12

Add instances of MonadCatch and MonadThrow from exceptions to FT, FreeT and IterT.

semigroupoids 5, profunctors 5, and bifunctors 5 support.

4.11

Pass Monad[FreeT].fail into underlying monad

Add retractT.

Added cutoff for the church encoded free monad.

cutoff now accepts negative numbers.

Added intersperseT and intercalateT.

Added foldFree and foldF.

Added some new template-haskell toys.

4.10.0.1

Fix for very old cabal versions where the MIN_VERSION_foo macros aren’t negation friendly.

4.10

Redefine Alternative and MonadPlus instances of IterT so that they apply to any underlying Monad.
mplus or <|> is Capretta’s race combinator; mzero or empty is a non-terminating computation.

Redefine fail s for IterT as mzero, for any string s.

Added Control.Monad.Trans.Iter.untilJust, which repeatedly retries a m (Maybe a) computation until
it produces Just a value.

Fix things so that we can build with GHC 7.10, which also uses the name Alt in Data.Monoid, and which exports Monoid from Prelude.

4.9

Remove either support. Why? It dragged in a large number of dependencies we otherwise don’t support, and so is probably best inverted.