packages feed

TypeCompose 0.9.8 → 0.9.9

raw patch · 2 files changed

+15/−7 lines, 2 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Control.Compose: bindDistribM :: (Functor m, Functor n, Monad m, Monad n, DistribM m n) => (m :. n) a -> (a -> (m :. n) b) -> (m :. n) b
+ Control.Compose: returnDistribM :: (Monad m, Monad n) => a -> (m :. n) a

Files

TypeCompose.cabal view
@@ -1,5 +1,5 @@ Name:                TypeCompose-Version:             0.9.8+Version:             0.9.9 Synopsis: 	     Type composition classes & instances Category:            Composition, Control Cabal-Version:       >= 1.6
src/Control/Compose.hs view
@@ -36,7 +36,7 @@   , (:.)(..), O, unO, biO, convO, coconvO, inO, inO2, inO3   , oPure, oFmap, oLiftA2, oLiftA3   , fmapFF, fmapCC, contraFmapFC, contraFmapCF-  , DistribM(..), joinDistribM+  , DistribM(..), joinDistribM, bindDistribM, returnDistribM   , joinMMT, joinComposeT   -- * Type composition   -- ** Unary\/binary@@ -364,7 +364,7 @@ class DistribM m n where   distribM :: n (m a) -> m (n a) --- | 'join' for @(m :. n)@+-- | A candidate 'join' for @(m :. n)@ joinDistribM :: (Monad m, Monad n, DistribM m n) =>                 (m :. n) ((m :. n) a) -> (m :. n) a joinDistribM = O . liftM join . join . liftM distribM . (liftM.liftM) unO . unO@@ -379,12 +379,20 @@ --   --> m (n a)              -- liftM join --   --> (m :. n) a           -- O +-- | A candidate '(>>=)' for @(m :. n)@+bindDistribM :: (Functor m, Functor n, Monad m, Monad n, DistribM m n) =>+                (m :. n) a -> (a -> (m :. n) b) -> (m :. n) b+mn `bindDistribM` f = joinDistribM (fmap f mn)++returnDistribM :: (Monad m, Monad n) => a -> (m :. n) a+returnDistribM = O . return . return+ -- Template for specialization: -- --- instance (Monad m, Monad n, DistribM m n) => Monad (m :. n) where---   return  = O . return . return---   e >>= f = joinDistribM (liftM f e)-+-- instance (Functor m, Functor n, Monad m, Monad n, DistribM m n) +--       => Monad (m :. n) where+--   return = returnDistribM+--   (>>=)  = bindDistribM  -- | 'join'-like function for implicitly composed monads joinMMT :: (Monad m, Monad n, Traversable n, Applicative m) =>