hakaru-0.7.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

Instances details
JmEq2 abt => JmEq1 (Reducer abt xs :: Hakaru -> Type) Source # 
Instance details

Defined in Language.Hakaru.Syntax.Reducer

Methods

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

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

Defined in Language.Hakaru.Syntax.Reducer

Methods

eq1 :: forall (i :: k). Reducer abt xs i -> Reducer abt xs i -> Bool Source #

Traversable22 Reducer Source # 
Instance details

Defined in Language.Hakaru.Syntax.Reducer

Methods

traverse22 :: forall f a b (j :: k3) (l :: k4). 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

Defined in Language.Hakaru.Syntax.Reducer

Methods

fold22 :: forall m (j :: k3) (l :: k4). Monoid m => Reducer (Lift2 m) j l -> m Source #

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

Functor22 Reducer Source # 
Instance details

Defined in Language.Hakaru.Syntax.Reducer

Methods

fmap22 :: forall a b (j :: k3) (l :: k4). (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

Defined in Language.Hakaru.Pretty.Haskell

Methods

prettyPrec_ :: forall (a :: Hakaru). Int -> Reducer abt xs a -> Docs Source #

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