Changelog for free-5.2
5.2 [2023.03.12]
- Drop support for GHC 7.10 and earlier.
- Drop redundant
Monadconstraints on many functions and instances. These constraints were only present for compatibility with pre-7.10 versions of GHC, whichfreeno longer supports. - Add
Eq,Eq1,Ord,Ord1, andFoldableinstances forApinControl.Applicative.Free. - Switch out
bifunctorsdependency forbifunctor-classes-compat.
5.1.10 [2022.11.30]
- Add a
MonadFailinstance forFT.
5.1.9 [2022.06.26]
- Simplify the
EqandOrdinstances forFTto avoid the use of overlapping instances.
5.1.8 [2022.05.07]
- Generalize the
Monadconstraint in the type signatures forhoistFreeTinControl.Monad.Trans.FreeandControl.Monad.Trans.Free.Apto aFunctorconstraint. - Allow building with
transformers-0.6.*andmtl-2.3.*.
5.1.7 [2021.04.30]
- Enable
FlexibleContextsinControl.Monad.Trans.Free.Churchto allow building with GHC 9.2.
5.1.6 [2020.12.31]
- Explicitly mark modules as
Safe.
5.1.5 [2020.12.16]
- Move
indexed-traversable(FunctorWithIndexetc) instances fromlens.
5.1.4 [2020.10.01]
- Allow building with
template-haskell-2.17.0.0(GHC 9.0).
5.1.3 [2019.11.26]
- Allow building with
template-haskell-2.16(GHC 8.10). - Add
Eq{1,2},Ord{1,2},Read{1,2}, andShow{1,2}instances forCofreeF.
5.1.2 [2019.08.27]
- Implement more performant versions of
someandmanyin theAlternativeinstance for the finalAltencoding.
5.1.1 [2019.05.02]
- Allow building with
base-4.13(GHC 8.8).
5.1 [2018.07.03]
- Generalize the type of
_Free. - Allow building with
containers-0.6. - Avoid incurring some dependencies when using recent GHCs.
5.0.2 [2018.04.25]
- Add
GenericandGeneric1instances where possible.
5.0.1 [2018.03.07]
- Fix the build on old GHCs with
transformers-0.4.
5 [2018.01.28]
-
Add a
Semigroupinstance forIterT. -
Add
MonadFailinstances forIterTandFreeT. -
Add a
Comonadinstance for the freeApplicative,Ap. -
Add
Control.Monad.Free.ApandControl.Monad.Trans.Free.Apmodules, based on the "Applicative Effects in Free Monads" series of articles by Will Fancher. -
Derive
Datainstances forFreeandCofree. -
Control.Monad.Free.THnow properly supportstemplate-haskell-2.11.0.0. In particular, it now supportsGadtCandRecGadtC, which are newtemplate-haskellforms for representing GADTs. -
Add
telescoped_,shoots, andleavestoControl.Comonad.Cofree -
Add the
Control.Applicative.Free.Fastmodule, based on Dave Menendez's article "Free Applicative Functors in Haskell" -
Add
foldFreeTtoControl.Monad.Trans.Free -
Improve the
foldMapandcutofffunctions forControl.Monad.Free.Church.F, and add aTraversable -
Add a
MonadBaseinstance forFreeT -
Add a performance test comparing Free and Church interpreters
-
The use of
prelude-extrashas been removed.freenow uses theData.Functor.Classesmodule to givefree's datatypes instances ofEq1,Ord1,Read1, andShow1. TheirEq,Ord,Read, andShowinstances 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) wherehas now been changed to:
instance (Eq1 f, Eq a) => Eq (Free f a) where -
Remove redundant
Functorconstraints fromControl.Alternative.Free
4.12.4
- Removed a number of spurious class constraints.
- Support GHC 8
4.12.3
- Support
comonad5
4.12.2
- Add instances for
ExceptT: likeErrorT, but without anErrorconstraint. - Support
containers - Support
transformers0.5
4.12.1
- Support GHC 7.4
4.12
- Add instances of
MonadCatchandMonadThrowfromexceptionstoFT,FreeTandIterT. semigroupoids5,profunctors5, andbifunctors5 support.
4.11
- Pass Monad[FreeT].fail into underlying monad
- Add
retractT. - Added
cutofffor the church encoded free monad. cutoffnow accepts negative numbers.- Added
intersperseTandintercalateT. - Added
foldFreeandfoldF. - Added some new
template-haskelltoys.
4.10.0.1
- Fix for very old
cabalversions where theMIN_VERSION_foomacros aren't negation friendly.
4.10
- Redefine
AlternativeandMonadPlusinstances ofIterTso that they apply to any underlyingMonad.mplusor<|>is Capretta'sracecombinator;mzerooremptyis a non-terminating computation. - Redefine
fail sforIterTasmzero, for any strings. - Added
Control.Monad.Trans.Iter.untilJust, which repeatedly retries am (Maybe a)computation until it producesJusta value. - Fix things so that we can build with GHC 7.10, which also uses the name
AltinData.Monoid, and which exportsMonoidfromPrelude.
4.9
- Remove
eithersupport. 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
MonadFreeinstance forEitherT(frrom theeitherpackage). - Support for
transformers0.4
4.7.1
- Added more versions of
cutoff.
4.7
- Added
prelude-extrassupport. This makes it possible to work withoutUndecidableInstancesfor most operations. - Removed the
GHC_TYPEABLEflag.
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
MonadWriterandMonadContwhere appropriate, thanks to Nickolay Kudasov. - Added
cutoff,iterTM, andnever. - Made modifications to some
TypeableandDatainstances 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.Freewith a new approach that is law-abiding for left-distributive Alternatives.
4.5
- Added
Control.Monad.Free.THwithmakeFreeto make it easier to write free monads. - Added missing instances for
MonadFixandMonadContwhere appropriate.
4.2
- Added
Control.Monad.Trans.IterandControl.Comonad.Trans.Coiter.
4.1.1
- Added a default signature to
wrap, based on a construction by @fizruk.
4.0
- Updated to work with
semigroupoidsandcomonad4.0 instance ComonadCofree Maybe NonEmptyinstance 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.FreeandControl.MonadPlus.Free
3.2
- Added
Control.Free.Applicative - Moved
Control.Monad.Free.Churchfromkan-extensionsinto this package.