packages feed

kan-extensions 0.5.0 → 0.5.1

raw patch · 2 files changed

+10/−2 lines, 2 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Control.Monad.Codensity: improve :: Functor f => (forall m. MonadFree f m => m a) -> Free f a

Files

Control/Monad/Codensity.hs view
@@ -15,12 +15,14 @@   , lowerCodensity   , codensityToAdjunction   , adjunctionToCodensity+  , improve   ) where  import Control.Applicative import Control.Monad.Reader.Class import Control.Monad.State.Class import Control.Monad.Free.Class+import Control.Monad.Free import Control.Monad (ap, MonadPlus(..)) import Data.Functor.Adjunction import Data.Functor.Apply@@ -56,7 +58,7 @@ instance MonadPlus v => MonadPlus (Codensity v) where   mzero                             = Codensity (\_ -> mzero)   Codensity m `mplus` Codensity n = Codensity (\k -> m k `mplus` n k)- + lowerCodensity :: Monad m => Codensity m a -> m a lowerCodensity a = runCodensity a return @@ -72,4 +74,10 @@ instance MonadReader r m => MonadState r (Codensity m) where   get = Codensity (ask >>=)   put s = Codensity (\k -> local (const s) (k ()))++-- | Right associate all binds in a computation that generates a free monad+-- This can improve the asymptotic efficiency of the result, while preserving+-- semantics.+improve :: Functor f => (forall m. MonadFree f m => m a) -> Free f a+improve m = lowerCodensity m 
kan-extensions.cabal view
@@ -1,6 +1,6 @@ name:          kan-extensions category:      Data Structures, Monads, Comonads, Functors-version:       0.5.0+version:       0.5.1 license:       BSD3 cabal-version: >= 1.6 license-file:  LICENSE