monad-bayes-1.3.0.3: A library for probabilistic programming.
Safe HaskellNone
LanguageHaskell2010

Control.Monad.Bayes.Density.State

Description

Slower than Control.Monad.Bayes.Density.Free, so not used by default, but more elementary to understand. Just uses standard monad transformer techniques.

Documentation

newtype DensityT (m :: Type -> Type) a Source #

Constructors

DensityT 

Fields

Instances

Instances details
MonadTrans DensityT Source # 
Instance details

Defined in Control.Monad.Bayes.Density.State

Methods

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

Monad m => Applicative (DensityT m) Source # 
Instance details

Defined in Control.Monad.Bayes.Density.State

Methods

pure :: a -> DensityT m a #

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

liftA2 :: (a -> b -> c) -> DensityT m a -> DensityT m b -> DensityT m c #

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

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

Functor m => Functor (DensityT m) Source # 
Instance details

Defined in Control.Monad.Bayes.Density.State

Methods

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

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

Monad m => Monad (DensityT m) Source # 
Instance details

Defined in Control.Monad.Bayes.Density.State

Methods

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

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

return :: a -> DensityT m a #

MonadDistribution m => MonadDistribution (DensityT m) Source # 
Instance details

Defined in Control.Monad.Bayes.Density.State

Monad m => MonadState [Double] (DensityT m) Source # 
Instance details

Defined in Control.Monad.Bayes.Density.State

Methods

get :: DensityT m [Double] #

put :: [Double] -> DensityT m () #

state :: ([Double] -> (a, [Double])) -> DensityT m a #

Monad m => MonadWriter [Double] (DensityT m) Source # 
Instance details

Defined in Control.Monad.Bayes.Density.State

Methods

writer :: (a, [Double]) -> DensityT m a #

tell :: [Double] -> DensityT m () #

listen :: DensityT m a -> DensityT m (a, [Double]) #

pass :: DensityT m (a, [Double] -> [Double]) -> DensityT m a #

runDensityT :: Monad m => DensityT m b -> [Double] -> m (b, [Double]) Source #