traq
Safe HaskellSafe-Inferred
LanguageHaskell2010

Traq.Data.Probability

Description

Probabilistic computation monad.

Synopsis

Documentation

Implementations

data Distr probT a #

A tree representation of a probability distributions. E.g. Distr Double a for real-valued probabilities. Distr () a for non-deterministic value.

Instances

Instances details
Alternative Tree # 
Instance details

Defined in Traq.Data.Probability.Tree

Methods

empty :: Tree a #

(<|>) :: Tree a -> Tree a -> Tree a #

some :: Tree a -> Tree [a] #

many :: Tree a -> Tree [a] #

MonadPlus Tree # 
Instance details

Defined in Traq.Data.Probability.Tree

Methods

mzero :: Tree a #

mplus :: Tree a -> Tree a -> Tree a #

ProbType probT => MonadExp probT (Distr probT) # 
Instance details

Defined in Traq.Data.Probability.Tree

Methods

expectationA :: (Applicative f, RVType probT r) => (a -> f r) -> Distr probT a -> f r #

ProbType probT => MonadProb probT (Distr probT) # 
Instance details

Defined in Traq.Data.Probability.Tree

Methods

choose :: ProbType probT => [(probT, Distr probT a)] -> Distr probT a #

MonadFail (Distr probT) # 
Instance details

Defined in Traq.Data.Probability.Tree

Methods

fail :: String -> Distr probT a #

Foldable (Distr probT) # 
Instance details

Defined in Traq.Data.Probability.Tree

Methods

fold :: Monoid m => Distr probT m -> m #

foldMap :: Monoid m => (a -> m) -> Distr probT a -> m #

foldMap' :: Monoid m => (a -> m) -> Distr probT a -> m #

foldr :: (a -> b -> b) -> b -> Distr probT a -> b #

foldr' :: (a -> b -> b) -> b -> Distr probT a -> b #

foldl :: (b -> a -> b) -> b -> Distr probT a -> b #

foldl' :: (b -> a -> b) -> b -> Distr probT a -> b #

foldr1 :: (a -> a -> a) -> Distr probT a -> a #

foldl1 :: (a -> a -> a) -> Distr probT a -> a #

toList :: Distr probT a -> [a] #

null :: Distr probT a -> Bool #

length :: Distr probT a -> Int #

elem :: Eq a => a -> Distr probT a -> Bool #

maximum :: Ord a => Distr probT a -> a #

minimum :: Ord a => Distr probT a -> a #

sum :: Num a => Distr probT a -> a #

product :: Num a => Distr probT a -> a #

Traversable (Distr probT) # 
Instance details

Defined in Traq.Data.Probability.Tree

Methods

traverse :: Applicative f => (a -> f b) -> Distr probT a -> f (Distr probT b) #

sequenceA :: Applicative f => Distr probT (f a) -> f (Distr probT a) #

mapM :: Monad m => (a -> m b) -> Distr probT a -> m (Distr probT b) #

sequence :: Monad m => Distr probT (m a) -> m (Distr probT a) #

Applicative (Distr probT) # 
Instance details

Defined in Traq.Data.Probability.Tree

Methods

pure :: a -> Distr probT a #

(<*>) :: Distr probT (a -> b) -> Distr probT a -> Distr probT b #

liftA2 :: (a -> b -> c) -> Distr probT a -> Distr probT b -> Distr probT c #

(*>) :: Distr probT a -> Distr probT b -> Distr probT b #

(<*) :: Distr probT a -> Distr probT b -> Distr probT a #

Functor (Distr probT) # 
Instance details

Defined in Traq.Data.Probability.Tree

Methods

fmap :: (a -> b) -> Distr probT a -> Distr probT b #

(<$) :: a -> Distr probT b -> Distr probT a #

Monad (Distr probT) # 
Instance details

Defined in Traq.Data.Probability.Tree

Methods

(>>=) :: Distr probT a -> (a -> Distr probT b) -> Distr probT b #

(>>) :: Distr probT a -> Distr probT b -> Distr probT b #

return :: a -> Distr probT a #

(Read a, Read probT) => Read (Distr probT a) # 
Instance details

Defined in Traq.Data.Probability.Tree

Methods

readsPrec :: Int -> ReadS (Distr probT a) #

readList :: ReadS [Distr probT a] #

readPrec :: ReadPrec (Distr probT a) #

readListPrec :: ReadPrec [Distr probT a] #

(Show a, Show probT) => Show (Distr probT a) # 
Instance details

Defined in Traq.Data.Probability.Tree

Methods

showsPrec :: Int -> Distr probT a -> ShowS #

show :: Distr probT a -> String #

showList :: [Distr probT a] -> ShowS #

(Eq a, Eq probT) => Eq (Distr probT a) # 
Instance details

Defined in Traq.Data.Probability.Tree

Methods

(==) :: Distr probT a -> Distr probT a -> Bool #

(/=) :: Distr probT a -> Distr probT a -> Bool #

(Ord a, Ord probT) => Ord (Distr probT a) # 
Instance details

Defined in Traq.Data.Probability.Tree

Methods

compare :: Distr probT a -> Distr probT a -> Ordering #

(<) :: Distr probT a -> Distr probT a -> Bool #

(<=) :: Distr probT a -> Distr probT a -> Bool #

(>) :: Distr probT a -> Distr probT a -> Bool #

(>=) :: Distr probT a -> Distr probT a -> Bool #

max :: Distr probT a -> Distr probT a -> Distr probT a #

min :: Distr probT a -> Distr probT a -> Distr probT a #

data ProbList probT a #

Instances

Instances details
ProbType probT => MonadExp probT (ProbList probT) # 
Instance details

Defined in Traq.Data.Probability.List

Methods

expectationA :: (Applicative f, RVType probT r) => (a -> f r) -> ProbList probT a -> f r #

ProbType probT => MonadProb probT (ProbList probT) # 
Instance details

Defined in Traq.Data.Probability.List

Methods

choose :: ProbType probT => [(probT, ProbList probT a)] -> ProbList probT a #

Foldable (ProbList probT) # 
Instance details

Defined in Traq.Data.Probability.List

Methods

fold :: Monoid m => ProbList probT m -> m #

foldMap :: Monoid m => (a -> m) -> ProbList probT a -> m #

foldMap' :: Monoid m => (a -> m) -> ProbList probT a -> m #

foldr :: (a -> b -> b) -> b -> ProbList probT a -> b #

foldr' :: (a -> b -> b) -> b -> ProbList probT a -> b #

foldl :: (b -> a -> b) -> b -> ProbList probT a -> b #

foldl' :: (b -> a -> b) -> b -> ProbList probT a -> b #

foldr1 :: (a -> a -> a) -> ProbList probT a -> a #

foldl1 :: (a -> a -> a) -> ProbList probT a -> a #

toList :: ProbList probT a -> [a] #

null :: ProbList probT a -> Bool #

length :: ProbList probT a -> Int #

elem :: Eq a => a -> ProbList probT a -> Bool #

maximum :: Ord a => ProbList probT a -> a #

minimum :: Ord a => ProbList probT a -> a #

sum :: Num a => ProbList probT a -> a #

product :: Num a => ProbList probT a -> a #

Num probT => Applicative (ProbList probT) # 
Instance details

Defined in Traq.Data.Probability.List

Methods

pure :: a -> ProbList probT a #

(<*>) :: ProbList probT (a -> b) -> ProbList probT a -> ProbList probT b #

liftA2 :: (a -> b -> c) -> ProbList probT a -> ProbList probT b -> ProbList probT c #

(*>) :: ProbList probT a -> ProbList probT b -> ProbList probT b #

(<*) :: ProbList probT a -> ProbList probT b -> ProbList probT a #

Functor (ProbList probT) # 
Instance details

Defined in Traq.Data.Probability.List

Methods

fmap :: (a -> b) -> ProbList probT a -> ProbList probT b #

(<$) :: a -> ProbList probT b -> ProbList probT a #

Num probT => Monad (ProbList probT) # 
Instance details

Defined in Traq.Data.Probability.List

Methods

(>>=) :: ProbList probT a -> (a -> ProbList probT b) -> ProbList probT b #

(>>) :: ProbList probT a -> ProbList probT b -> ProbList probT b #

return :: a -> ProbList probT a #

(Read probT, Read a) => Read (ProbList probT a) # 
Instance details

Defined in Traq.Data.Probability.List

Methods

readsPrec :: Int -> ReadS (ProbList probT a) #

readList :: ReadS [ProbList probT a] #

readPrec :: ReadPrec (ProbList probT a) #

readListPrec :: ReadPrec [ProbList probT a] #

(Show probT, Show a) => Show (ProbList probT a) # 
Instance details

Defined in Traq.Data.Probability.List

Methods

showsPrec :: Int -> ProbList probT a -> ShowS #

show :: ProbList probT a -> String #

showList :: [ProbList probT a] -> ShowS #

(Eq probT, Eq a) => Eq (ProbList probT a) # 
Instance details

Defined in Traq.Data.Probability.List

Methods

(==) :: ProbList probT a -> ProbList probT a -> Bool #

(/=) :: ProbList probT a -> ProbList probT a -> Bool #

newtype ProbT probT m a #

Probability monad transformer

Constructors

ProbT 

Fields

Instances

Instances details
(ProbType probT, Monad m) => MonadProb probT (ProbT probT m) # 
Instance details

Defined in Traq.Data.Probability.Trans

Methods

choose :: ProbType probT => [(probT, ProbT probT m a)] -> ProbT probT m a #

MonadTrans (ProbT probT) # 
Instance details

Defined in Traq.Data.Probability.Trans

Methods

lift :: Monad m => m a -> ProbT probT m a #

MonadFail m => MonadFail (ProbT probT m) # 
Instance details

Defined in Traq.Data.Probability.Trans

Methods

fail :: String -> ProbT probT m a #

Applicative m => Applicative (ProbT probT m) # 
Instance details

Defined in Traq.Data.Probability.Trans

Methods

pure :: a -> ProbT probT m a #

(<*>) :: ProbT probT m (a -> b) -> ProbT probT m a -> ProbT probT m b #

liftA2 :: (a -> b -> c) -> ProbT probT m a -> ProbT probT m b -> ProbT probT m c #

(*>) :: ProbT probT m a -> ProbT probT m b -> ProbT probT m b #

(<*) :: ProbT probT m a -> ProbT probT m b -> ProbT probT m a #

Functor m => Functor (ProbT probT m) # 
Instance details

Defined in Traq.Data.Probability.Trans

Methods

fmap :: (a -> b) -> ProbT probT m a -> ProbT probT m b #

(<$) :: a -> ProbT probT m b -> ProbT probT m a #

Monad m => Monad (ProbT probT m) # 
Instance details

Defined in Traq.Data.Probability.Trans

Methods

(>>=) :: ProbT probT m a -> (a -> ProbT probT m b) -> ProbT probT m b #

(>>) :: ProbT probT m a -> ProbT probT m b -> ProbT probT m b #

return :: a -> ProbT probT m a #

type Prob probT = ProbT probT Identity #

runProb :: Prob probT a -> Distr probT a #

data ExpMonad probT a #

Instances

Instances details
ProbType probT => MonadExp probT (ExpMonad probT) # 
Instance details

Defined in Traq.Data.Probability.Cont

Methods

expectationA :: (Applicative f, RVType probT r) => (a -> f r) -> ExpMonad probT a -> f r #

ProbType probT => MonadProb probT (ExpMonad probT) # 
Instance details

Defined in Traq.Data.Probability.Cont

Methods

choose :: ProbType probT => [(probT, ExpMonad probT a)] -> ExpMonad probT a #

Applicative (ExpMonad probT) # 
Instance details

Defined in Traq.Data.Probability.Cont

Methods

pure :: a -> ExpMonad probT a #

(<*>) :: ExpMonad probT (a -> b) -> ExpMonad probT a -> ExpMonad probT b #

liftA2 :: (a -> b -> c) -> ExpMonad probT a -> ExpMonad probT b -> ExpMonad probT c #

(*>) :: ExpMonad probT a -> ExpMonad probT b -> ExpMonad probT b #

(<*) :: ExpMonad probT a -> ExpMonad probT b -> ExpMonad probT a #

Functor (ExpMonad probT) # 
Instance details

Defined in Traq.Data.Probability.Cont

Methods

fmap :: (a -> b) -> ExpMonad probT a -> ExpMonad probT b #

(<$) :: a -> ExpMonad probT b -> ExpMonad probT a #

Monad (ExpMonad probT) # 
Instance details

Defined in Traq.Data.Probability.Cont

Methods

(>>=) :: ExpMonad probT a -> (a -> ExpMonad probT b) -> ExpMonad probT b #

(>>) :: ExpMonad probT a -> ExpMonad probT b -> ExpMonad probT b #

return :: a -> ExpMonad probT a #