mcsp-algorithms-0.1.0: Algorithms for Minimum Common String Partition (MCSP) in Haskell.
Safe HaskellSafe-Inferred
LanguageGHC2021

MCSP.System.Random.Monad

Description

A monad that abstract randomized operations.

Synopsis

Documentation

data Random a Source #

A monad capable of producing random values of a.

Instances

Instances details
Applicative Random Source # 
Instance details

Defined in MCSP.System.Random.Monad

Methods

pure :: a -> Random a #

(<*>) :: Random (a -> b) -> Random a -> Random b #

liftA2 :: (a -> b -> c) -> Random a -> Random b -> Random c #

(*>) :: Random a -> Random b -> Random b #

(<*) :: Random a -> Random b -> Random a #

Functor Random Source # 
Instance details

Defined in MCSP.System.Random.Monad

Methods

fmap :: (a -> b) -> Random a -> Random b #

(<$) :: a -> Random b -> Random a #

Monad Random Source # 
Instance details

Defined in MCSP.System.Random.Monad

Methods

(>>=) :: Random a -> (a -> Random b) -> Random b #

(>>) :: Random a -> Random b -> Random b #

return :: a -> Random a #

Monoid a => Monoid (Random a) Source # 
Instance details

Defined in MCSP.System.Random.Monad

Methods

mempty :: Random a #

mappend :: Random a -> Random a -> Random a #

mconcat :: [Random a] -> Random a #

Semigroup a => Semigroup (Random a) Source # 
Instance details

Defined in MCSP.System.Random.Monad

Methods

(<>) :: Random a -> Random a -> Random a #

sconcat :: NonEmpty (Random a) -> Random a #

stimes :: Integral b => b -> Random a -> Random a #

evalRandom :: Generator g (ST s) => Random a -> g -> ST s a Source #

Evaluate a random computation with the given initial generator and return the final value.

liftRandom :: (forall g m. Generator g m => g -> m a) -> Random a Source #

Turn a standard RNG function into a Random monad.

lazyRandom :: Random a -> Random a Source #

Allows a Random monad to be evaluated lazily.

This function should be applied with care, otherwise a strict Random monad could still force early evaluation of this lazy version.