control-monad-free 0.6.0.1 → 0.6.1
raw patch · 3 files changed
+10/−1 lines, 3 filesdep ~basePVP ok
version bump matches the API change (PVP)
Dependency ranges changed: base
API changes (from Hackage documentation)
+ Control.Monad.Free: instance [overlap ok] (Functor f, Functor m, Monad m, MonadPlus m) => Alternative (FreeT f m)
+ Control.Monad.Free.Improve: instance [overlap ok] MonadPlus mu => Alternative (C mu)
Files
Control/Monad/Free.hs view
@@ -83,6 +83,7 @@ Pure f <*> x = fmap f x Impure f <*> x = Impure (fmap (<*> x) f) + isPure Pure{} = True; isPure _ = False isImpure = not . isPure @@ -159,6 +160,10 @@ instance (Functor f, Monad m, MonadPlus m) => MonadPlus (FreeT f m) where mzero = lift mzero mplus a b = FreeT (mplus (unFreeT a) (unFreeT b))++instance (Functor f, Functor m, Monad m, MonadPlus m) => Alternative (FreeT f m) where+ empty = mzero+ (<|>) = mplus foldFreeT :: (Traversable f, Monad m) => (a -> m b) -> (f b -> m b) -> FreeT f m a -> m b foldFreeT p i m = unFreeT m >>= \r ->
Control/Monad/Free/Improve.hs view
@@ -54,4 +54,8 @@ mzero = rep mzero mplus p1 p2 = rep (mplus (improve p1) (improve p2)) +instance MonadPlus mu => Alternative (C mu) where+ empty = mzero+ (<|>) = mplus+ instance MonadTrans C where lift m = C (m >>=)
control-monad-free.cabal view
@@ -1,5 +1,5 @@ name: control-monad-free-version: 0.6.0.1+version: 0.6.1 Cabal-Version: >= 1.6 build-type: Simple license: PublicDomain