-- 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)