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 +1/−1
- src/Control/Monad/Supply.hs +4/−4
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