BitStringRandomMonad-0.1.0.0

Safe HaskellNone
LanguageHaskell2010

Crypto.RandomMonad

Documentation

data RndT m a Source #

Instances

MonadTrans RndT Source # 

Methods

lift :: Monad m => m a -> RndT m a #

Monad m => Monad (RndT m) Source # 

Methods

(>>=) :: RndT m a -> (a -> RndT m b) -> RndT m b #

(>>) :: RndT m a -> RndT m b -> RndT m b #

return :: a -> RndT m a #

fail :: String -> RndT m a #

Functor m => Functor (RndT m) Source # 

Methods

fmap :: (a -> b) -> RndT m a -> RndT m b #

(<$) :: a -> RndT m b -> RndT m a #

Monad m => Applicative (RndT m) Source # 

Methods

pure :: a -> RndT m a #

(<*>) :: RndT m (a -> b) -> RndT m a -> RndT m b #

(*>) :: RndT m a -> RndT m b -> RndT m b #

(<*) :: RndT m a -> RndT m b -> RndT m a #

PrimMonad m => PrimMonad (RndT m) Source # 

Associated Types

type PrimState (RndT m :: * -> *) :: * #

Methods

primitive :: (State# (PrimState (RndT m)) -> (#VoidRep, PtrRepLifted, State# (PrimState (RndT m)), a#)) -> RndT m a #

type PrimState (RndT m) Source # 
type PrimState (RndT m) = PrimState m

type RndST s a = RndT (ST s) a Source #

type RndIO a = RndT IO a Source #

type Rnd a = RndT Identity a Source #

runRndT :: RndState -> RndT m a -> m (a, RndState) Source #

newRandomElementST :: Unbox a => [a] -> ST s (STRef s (Vector a)) Source #

randomElementsLength :: (Unbox a, MonadTrans t, Monad (t (ST s))) => STRef s (Vector a) -> t (ST s) Int Source #