Changelog for free-5.0.2
5.0.1 [2018.03.07]
- Fix the build on old GHCs with
transformers-0.4
.
5 [2018.01.28]
-
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
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
: likeErrorT
, but without anError
constraint. - Support
containers
- Support
transformers
0.5
4.12.1
- Support GHC 7.4
4.12
- Add instances of
MonadCatch
andMonadThrow
fromexceptions
toFT
,FreeT
andIterT
. semigroupoids
5,profunctors
5, andbifunctors
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
andintercalateT
. - Added
foldFree
andfoldF
. - Added some new
template-haskell
toys.
4.10.0.1
- Fix for very old
cabal
versions where theMIN_VERSION_foo
macros aren't negation friendly.
4.10
- 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
.
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.
4.8.0.1
- Allow complation with older versions of
base
. (Foldable didn't add foldl' until base 4.6)
4.8
- Added a
MonadFree
instance forEitherT
(frrom theeither
package). - Support for
transformers
0.4
4.7.1
- Added more versions of
cutoff
.
4.7
- Added
prelude-extras
support. This makes it possible to work withoutUndecidableInstances
for most operations. - Removed the
GHC_TYPEABLE
flag.
4.6.1
- Added
hoistF
4.6
- 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.
4.5
- Added
Control.Monad.Free.TH
withmakeFree
to make it easier to write free monads. - Added missing instances for
MonadFix
andMonadCont
where appropriate.
4.2
- Added
Control.Monad.Trans.Iter
andControl.Comonad.Trans.Coiter
.
4.1.1
- Added a default signature to
wrap
, based on a construction by @fizruk.
4.0
- Updated to work with
semigroupoids
andcomonad
4.0 instance ComonadCofree Maybe NonEmpty
instance ComonadCofree (Const b) ((,) b)
3.4.2
- Generalized
liftF
. - Added
iterM
3.4.1
- Added support for GHC 7.7's polykinded
Typeable
3.4
- Added instance
MonadFree f (ContT r m)
3.3.1
- Refactored build system
- Removed upper bounds on my own intra-package dependencies
3.3
- Added
Control.Alternative.Free
andControl.MonadPlus.Free
3.2
- Added
Control.Free.Applicative
- Moved
Control.Monad.Free.Church
fromkan-extensions
into this package.