packages feed

monad-supply 0.4 → 0.5

raw patch · 2 files changed

+5/−5 lines, 2 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- Control.Monad.Supply: instance (Error e, MonadSupply s m) => MonadSupply s (ErrorT e m)
+ Control.Monad.Supply: instance MonadFix (Supply s)
+ Control.Monad.Supply: instance MonadFix m => MonadFix (SupplyT s m)
+ Control.Monad.Supply: instance MonadSupply s m => MonadSupply s (ExceptT e m)

Files

monad-supply.cabal view
@@ -1,6 +1,6 @@ Name:          monad-supply Build-type:    Simple-Version:       0.4+Version:       0.5 Cabal-Version: >= 1.6 Synopsis:      Stateful supply monad. Description:   Support for computations which consume values from a (possibly infinite) supply.
src/Control/Monad/Supply.hs view
@@ -21,7 +21,7 @@ import Control.Applicative import Control.Monad.Identity import Control.Monad.State-import Control.Monad.Error+import Control.Monad.Except import Control.Monad.Reader import Control.Monad.Writer @@ -32,11 +32,11 @@  -- | Supply monad transformer. newtype SupplyT s m a = SupplyT (StateT [s] m a)-  deriving (Functor, Applicative, Monad, MonadTrans, MonadIO)+  deriving (Functor, Applicative, Monad, MonadTrans, MonadIO, MonadFix)  -- | Supply monad.  newtype Supply s a = Supply (SupplyT s Identity a)-  deriving (Functor, Applicative, Monad, MonadSupply s)+  deriving (Functor, Applicative, Monad, MonadSupply s, MonadFix)  instance Monad m => MonadSupply s (SupplyT s m) where   supply = SupplyT $ do (x:xs) <- get@@ -46,7 +46,7 @@   exhausted = SupplyT $ gets null  -- Monad transformer instances-instance (Error e,MonadSupply s m) => MonadSupply s (ErrorT e m) where+instance MonadSupply s m => MonadSupply s (ExceptT e m) where   supply = lift supply   peek = lift peek   exhausted = lift exhausted