hakaru-0.4.0: A probabilistic programming language

Safe HaskellNone
LanguageHaskell2010

Language.Hakaru.Runtime.Prelude

Documentation

type family MinBoxVec (v1 :: * -> *) (v2 :: * -> *) :: * -> * Source #

type family MayBoxVec a :: * -> * Source #

lam :: (a -> b) -> a -> b Source #

app :: (a -> b) -> a -> b Source #

let_ :: a -> (a -> b) -> b Source #

ann_ :: a -> b -> b Source #

newtype Measure a Source #

Constructors

Measure 

Fields

Instances

Monad Measure Source # 

Methods

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

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

return :: a -> Measure a #

fail :: String -> Measure a #

Functor Measure Source # 

Methods

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

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

Applicative Measure Source # 

Methods

pure :: a -> Measure a #

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

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

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

Show a => MakeMain (Measure a) Source # 

Methods

makeMain :: Measure a -> [String] -> IO () Source #

plate :: Vector (MayBoxVec a) a => Int -> (Int -> Measure a) -> Measure (MayBoxVec a a) Source #

bucket :: Int -> Int -> (forall s. Reducer () s a) -> a Source #

data Reducer xs s a Source #

Constructors

Reducer 

Fields

r_fanout :: Reducer xs s a -> Reducer xs s b -> Reducer xs s (a, b) Source #

r_index :: Vector (MayBoxVec a) a => (xs -> Int) -> ((Int, xs) -> Int) -> Reducer (Int, xs) s a -> Reducer xs s (MayBoxVec a a) Source #

r_split :: ((Int, xs) -> Bool) -> Reducer xs s a -> Reducer xs s b -> Reducer xs s (a, b) Source #

r_add :: Num a => ((Int, xs) -> a) -> Reducer xs s a Source #

r_nop :: Reducer xs s () Source #

pair :: a -> b -> (a, b) Source #

just :: a -> Maybe a Source #

left :: a -> Either a b Source #

right :: b -> Either a b Source #

unit :: () Source #

data Pattern Source #

Constructors

PVar 
PWild 

newtype Branch a b Source #

Constructors

Branch 

Fields

extractBool :: Bool -> a -> Bool -> Maybe a Source #

pnothing :: b -> Branch (Maybe a) b Source #

pjust :: Pattern -> (a -> b) -> Branch (Maybe a) b Source #

pleft :: Pattern -> (a -> c) -> Branch (Either a b) c Source #

pright :: Pattern -> (b -> c) -> Branch (Either a b) c Source #

ppair :: Pattern -> Pattern -> (x -> y -> b) -> Branch (x, y) b Source #

uncase_ :: Maybe a -> a Source #

case_ :: a -> [Branch a b] -> b Source #

branch :: (c -> Branch a b) -> c -> Branch a b Source #

dirac :: a -> Measure a Source #

abs_ :: Num a => a -> a Source #

array :: Vector (MayBoxVec a) a => Int -> (Int -> a) -> MayBoxVec a a Source #

arrayLit :: Vector (MayBoxVec a) a => [a] -> MayBoxVec a a Source #

(!) :: Vector (MayBoxVec a) a => MayBoxVec a a -> Int -> a Source #

reduce :: Vector (MayBoxVec a) a => (a -> a -> a) -> a -> MayBoxVec a a -> a Source #

product :: Num a => Int -> Int -> (Int -> a) -> a Source #

summate :: Num a => Int -> Int -> (Int -> a) -> a Source #

run :: Show a => GenIO -> Measure a -> IO () Source #

iterateM_ :: Monad m => (a -> m a) -> a -> m b Source #

withPrint :: Show a => (a -> IO b) -> a -> IO b Source #