MonadRandom 0.1.6 → 0.1.7
raw patch · 2 files changed
+12/−2 lines, 2 filesnew-uploaderPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
+ Control.Monad.Random: instance (Error e, MonadRandom m) => MonadRandom (ErrorT e m)
+ Control.Monad.Random: instance (Error e, MonadSplit g m) => MonadSplit g (ErrorT e m)
- Control.Monad.Random: data RandomGen g => RandT g m a
+ Control.Monad.Random: data RandT g m a
Files
- Control/Monad/Random.hs +11/−1
- MonadRandom.cabal +1/−1
Control/Monad/Random.hs view
@@ -42,6 +42,7 @@ import System.Random import Control.Monad()+import Control.Monad.Error import Control.Monad.Identity import Control.Monad.Random.Class import Control.Monad.Reader@@ -53,7 +54,7 @@ -- | A monad transformer which adds a random number generator to an -- existing monad.-newtype (RandomGen g) => RandT g m a = RandT (StateT g m a)+newtype RandT g m a = RandT (StateT g m a) deriving (Functor, Monad, MonadTrans, MonadIO, MonadFix) instance (Functor m,Monad m) => Applicative (RandT g m) where@@ -138,6 +139,12 @@ getRandoms = lift getRandoms getRandomRs = lift . getRandomRs +instance (Error e, MonadRandom m) => MonadRandom (ErrorT e m) where+ getRandom = lift getRandom+ getRandomR = lift . getRandomR+ getRandoms = lift getRandoms+ getRandomRs = lift . getRandomRs+ instance (MonadSplit g m) => MonadSplit g (StateT s m) where getSplit = lift getSplit @@ -145,6 +152,9 @@ getSplit = lift getSplit instance (MonadSplit g m) => MonadSplit g (ReaderT r m) where+ getSplit = lift getSplit++instance (Error e, MonadSplit g m) => MonadSplit g (ErrorT e m) where getSplit = lift getSplit instance (MonadState s m, RandomGen g) => MonadState s (RandT g m) where
MonadRandom.cabal view
@@ -1,6 +1,6 @@ Name: MonadRandom Build-type: Simple-Version: 0.1.6+Version: 0.1.7 Synopsis: Random-number generation monad. Description: Support for computations which consume random values. License: OtherLicense