-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Lazy monad for psuedo random-number generation. -- -- Support for lazy computations which consume random values. @package MonadRandomLazy @version 0.1.1 -- | License : BSD3 -- -- A lazy monad for random-number generation. This monad allows, for -- example, computation of infinite random lists. -- -- This monad respects the interface defined by MonadRandom. -- -- A monadic computation is one that consumes random values. The bind -- operation works like the Gen monad in QuickCheck: it -- does not thread the random seed; instead it *splits* the random seed. module Control.Monad.LazyRandom -- | Evaluate a random computation using the generator g. The new -- g is discarded. evalRand :: (RandomGen g) => Rand g a -> g -> a -- | Run a random computation using the generator g, returning the -- result and a new generator. runRand :: (RandomGen g) => Rand g a -> g -> (a, g) -- | Evaluate a random computation in the IO monad, using the random number -- generator supplied by getStdRandom. evalRandIO :: Rand StdGen a -> IO a data Rand g a instance GHC.Base.Functor (Control.Monad.LazyRandom.Rand g) instance System.Random.RandomGen g => GHC.Base.Applicative (Control.Monad.LazyRandom.Rand g) instance System.Random.RandomGen g => GHC.Base.Monad (Control.Monad.LazyRandom.Rand g) instance System.Random.RandomGen g => Control.Monad.Random.Class.MonadRandom (Control.Monad.LazyRandom.Rand g) instance System.Random.RandomGen g => Control.Monad.Random.Class.MonadSplit g (Control.Monad.LazyRandom.Rand g)