- Implement more performant versions of
someandmanyin theAlternativeinstance for the finalAltencoding.
- 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
GenericandGeneric1instances where possible.
- Fix the build on old GHCs with
transformers-0.4.
-
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) where
has now been changed to:
instance (Eq1 f, Eq a) => Eq (Free f a) where
-
Remove redundant
Functorconstraints fromControl.Alternative.Free
- Removed a number of spurious class constraints.
- Support GHC 8
- Support
comonad5
- Add instances for
ExceptT: likeErrorT, but without anErrorconstraint. - Support
containers - Support
transformers0.5
- Support GHC 7.4
- Add instances of
MonadCatchandMonadThrowfromexceptionstoFT,FreeTandIterT. semigroupoids5,profunctors5, andbifunctors5 support.
- 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.
- Fix for very old
cabalversions where theMIN_VERSION_foomacros aren't negation friendly.
- 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.
- Remove
eithersupport. 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
MonadFreeinstance forEitherT(frrom theeitherpackage). - Support for
transformers0.4
- Added more versions of
cutoff.
- Added
prelude-extrassupport. This makes it possible to work withoutUndecidableInstancesfor most operations. - Removed the
GHC_TYPEABLEflag.
- 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
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.
- Added
Control.Monad.Free.THwithmakeFreeto make it easier to write free monads. - Added missing instances for
MonadFixandMonadContwhere appropriate.
- Added
Control.Monad.Trans.IterandControl.Comonad.Trans.Coiter.
- Added a default signature to
wrap, based on a construction by @fizruk.
- Updated to work with
semigroupoidsandcomonad4.0 instance ComonadCofree Maybe NonEmptyinstance 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.FreeandControl.MonadPlus.Free
- Added
Control.Free.Applicative - Moved
Control.Monad.Free.Churchfromkan-extensionsinto this package.