hakaru-0.6.0: A probabilistic programming language

Safe HaskellNone
LanguageHaskell2010

Language.Hakaru.Syntax.Reducer

Documentation

data Reducer (abt :: [Hakaru] -> Hakaru -> *) (xs :: [Hakaru]) (a :: Hakaru) where Source #

Constructors

Red_Fanout :: Reducer abt xs a -> Reducer abt xs b -> Reducer abt xs (HPair a b) 
Red_Index :: abt xs HNat -> abt (HNat ': xs) HNat -> Reducer abt (HNat ': xs) a -> Reducer abt xs (HArray a) 
Red_Split :: abt (HNat ': xs) HBool -> Reducer abt xs a -> Reducer abt xs b -> Reducer abt xs (HPair a b) 
Red_Nop :: Reducer abt xs HUnit 
Red_Add :: HSemiring a -> abt (HNat ': xs) a -> Reducer abt xs a 
Instances
JmEq2 abt => JmEq1 (Reducer abt xs :: Hakaru -> *) Source # 
Instance details

Methods

jmEq1 :: Reducer abt xs i -> Reducer abt xs j -> Maybe (TypeEq i j) Source #

Eq2 abt => Eq1 (Reducer abt xs :: Hakaru -> *) Source # 
Instance details

Methods

eq1 :: Reducer abt xs i -> Reducer abt xs i -> Bool Source #

Traversable22 Reducer Source # 
Instance details

Methods

traverse22 :: Applicative f => (forall (h :: k1) (i :: k2). a h i -> f (b h i)) -> Reducer a j l -> f (Reducer b j l) Source #

Foldable22 Reducer Source # 
Instance details

Methods

fold22 :: Monoid m => Reducer (Lift2 m) j l -> m Source #

foldMap22 :: Monoid m => (forall (h :: k1) (i :: k2). a h i -> m) -> Reducer a j l -> m Source #

Functor22 Reducer Source # 
Instance details

Methods

fmap22 :: (forall (h :: k1) (i :: k2). a h i -> b h i) -> Reducer a j l -> Reducer b j l Source #

ABT Term abt => Pretty (Reducer abt xs) Source # 
Instance details

Methods

prettyPrec_ :: Int -> Reducer abt xs a -> Docs Source #

jmEqReducer :: JmEq2 abt => Reducer abt xs a -> Reducer abt xs b -> Maybe (TypeEq a b) Source #