packages feed

monad-supply 0.1 → 0.2

raw patch · 2 files changed

+19/−2 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 (Monoid w, MonadSupply s m) => MonadSupply s (WriterT w m)
+ Control.Monad.Supply: instance MonadSupply s m => MonadSupply s (ReaderT r m)
+ Control.Monad.Supply: instance MonadSupply s m => MonadSupply s (StateT st m)
+ Control.Monad.Supply: supply :: MonadSupply s m => m s

Files

monad-supply.cabal view
@@ -1,6 +1,6 @@ Name:          monad-supply Build-type:    Simple-Version:       0.1+Version:       0.2 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
@@ -1,5 +1,6 @@ {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE FunctionalDependencies #-}+{-# LANGUAGE UndecidableInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE MultiParamTypeClasses #-} @@ -7,7 +8,7 @@ -- supply. See http://www.haskell.org/haskellwiki/New_monads/MonadSupply for -- details. module Control.Monad.Supply-( MonadSupply+( MonadSupply (..) , SupplyT , Supply , evalSupplyT@@ -19,6 +20,9 @@  import Control.Monad.Identity import Control.Monad.State+import Control.Monad.Error+import Control.Monad.Reader+import Control.Monad.Writer import Data.Monoid  class Monad m => MonadSupply s m | m -> s where@@ -36,6 +40,19 @@   supply = SupplyT $ do (x:xs) <- get                         put xs                         return x++-- Monad transformer instances+instance (Error e,MonadSupply s m) => MonadSupply s (ErrorT e m) where+  supply = lift supply++instance MonadSupply s m => MonadSupply s (StateT st m) where+  supply = lift supply++instance MonadSupply s m => MonadSupply s (ReaderT r m) where+  supply = lift supply++instance (Monoid w, MonadSupply s m) => MonadSupply s (WriterT w m) where+  supply = lift supply  -- | Monoid instance for the supply monad. Actually any monad/monoid pair gives -- rise to this monoid instance, but we can't write it like that because it