- Implement more performant versions of
some
andmany
in theAlternative
instance for the finalAlt
encoding.
- Allow building with
base-4.13
(GHC 8.8).
- Generalize the type of
_Free
. - Allow building with
containers-0.6
. - Avoid incurring some dependencies when using recent GHCs.
- Add
Generic
andGeneric1
instances where possible.
- Fix the build on old GHCs with
transformers-0.4
.
-
Add a
Semigroup
instance forIterT
. -
Add
MonadFail
instances forIterT
andFreeT
. -
Add a
Comonad
instance for the freeApplicative
,Ap
. -
Add
Control.Monad.Free.Ap
andControl.Monad.Trans.Free.Ap
modules, based on the "Applicative Effects in Free Monads" series of articles by Will Fancher. -
Derive
Data
instances forFree
andCofree
. -
Control.Monad.Free.TH
now properly supportstemplate-haskell-2.11.0.0
. In particular, it now supportsGadtC
andRecGadtC
, which are newtemplate-haskell
forms for representing GADTs. -
Add
telescoped_
,shoots
, andleaves
toControl.Comonad.Cofree
-
Add the
Control.Applicative.Free.Fast
module, based on Dave Menendez's article "Free Applicative Functors in Haskell" -
Add
foldFreeT
toControl.Monad.Trans.Free
-
Improve the
foldMap
andcutoff
functions forControl.Monad.Free.Church.F
, and add aTraversable
-
Add a
MonadBase
instance forFreeT
-
Add a performance test comparing Free and Church interpreters
-
The use of
prelude-extras
has been removed.free
now uses theData.Functor.Classes
module to givefree
's datatypes instances ofEq1
,Ord1
,Read1
, andShow1
. TheirEq
,Ord
,Read
, andShow
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 fromControl.Alternative.Free
- Removed a number of spurious class constraints.
- Support GHC 8
- Support
comonad
5
- Add instances for
ExceptT
: likeErrorT
, but without anError
constraint. - Support
containers
- Support
transformers
0.5
- Support GHC 7.4
- Add instances of
MonadCatch
andMonadThrow
fromexceptions
toFT
,FreeT
andIterT
. semigroupoids
5,profunctors
5, andbifunctors
5 support.
- Pass Monad[FreeT].fail into underlying monad
- Add
retractT
. - Added
cutoff
for the church encoded free monad. cutoff
now accepts negative numbers.- Added
intersperseT
andintercalateT
. - Added
foldFree
andfoldF
. - Added some new
template-haskell
toys.
- Fix for very old
cabal
versions where theMIN_VERSION_foo
macros aren't negation friendly.
- Redefine
Alternative
andMonadPlus
instances ofIterT
so that they apply to any underlyingMonad
.mplus
or<|>
is Capretta'srace
combinator;mzero
orempty
is a non-terminating computation. - Redefine
fail s
forIterT
asmzero
, for any strings
. - Added
Control.Monad.Trans.Iter.untilJust
, which repeatedly retries am (Maybe a)
computation until it producesJust
a value. - Fix things so that we can build with GHC 7.10, which also uses the name
Alt
inData.Monoid
, and which exportsMonoid
fromPrelude
.
- Remove
either
support. Why? It dragged in a large number of dependencies we otherwise don't support, and so is probably best inverted.
- Allow complation with older versions of
base
. (Foldable didn't add foldl' until base 4.6)
- Added a
MonadFree
instance forEitherT
(frrom theeither
package). - Support for
transformers
0.4
- Added more versions of
cutoff
.
- Added
prelude-extras
support. This makes it possible to work withoutUndecidableInstances
for most operations. - Removed the
GHC_TYPEABLE
flag.
- Added
hoistF
- Víctor López Juan and Fabian Ruch added many documentation improvements and a whole host of proofs of correctness.
- Improvements in the template haskell code generator.
- Added instances for
MonadWriter
andMonadCont
where appropriate, thanks to Nickolay Kudasov. - Added
cutoff
,iterTM
, andnever
. - Made modifications to some
Typeable
andData
instances to work correctly on both GHC 7.8.1rc1 and 7.8.1rc2. - Removed
Control.MonadPlus.Free
. UseFreeT f []
instead and the result will be law-abiding. - Replaced
Control.Alternative.Free
with a new approach that is law-abiding for left-distributive Alternatives.
- Added
Control.Monad.Free.TH
withmakeFree
to make it easier to write free monads. - Added missing instances for
MonadFix
andMonadCont
where appropriate.
- Added
Control.Monad.Trans.Iter
andControl.Comonad.Trans.Coiter
.
- Added a default signature to
wrap
, based on a construction by @fizruk.
- Updated to work with
semigroupoids
andcomonad
4.0 instance ComonadCofree Maybe NonEmpty
instance ComonadCofree (Const b) ((,) b)
- Generalized
liftF
. - Added
iterM
- Added support for GHC 7.7's polykinded
Typeable
- Added instance
MonadFree f (ContT r m)
- Refactored build system
- Removed upper bounds on my own intra-package dependencies
- Added
Control.Alternative.Free
andControl.MonadPlus.Free
- Added
Control.Free.Applicative
- Moved
Control.Monad.Free.Church
fromkan-extensions
into this package.