hakaru-0.6.0: A probabilistic programming language

Safe HaskellNone
LanguageHaskell2010

Language.Hakaru.Syntax.SArgs

Synopsis

Documentation

data SArgs :: ([Hakaru] -> Hakaru -> *) -> [([Hakaru], Hakaru)] -> * where Source #

The arguments to a (:$) node in the Term; that is, a list of ASTs, where the whole list is indexed by a (type-level) list of the indices of each element.

Constructors

End :: SArgs abt '[] 
(:*) :: !(abt vars a) -> !(SArgs abt args) -> SArgs abt ('(vars, a) ': args) infixr 5 
Instances
Traversable21 SArgs Source # 
Instance details

Methods

traverse21 :: Applicative f => (forall (h :: k1) (i :: k2). a h i -> f (b h i)) -> SArgs a j -> f (SArgs b j) Source #

Foldable21 SArgs Source # 
Instance details

Methods

fold21 :: Monoid m => SArgs (Lift2 m) j -> m Source #

foldMap21 :: Monoid m => (forall (h :: k1) (i :: k2). a h i -> m) -> SArgs a j -> m Source #

Functor21 SArgs Source # 
Instance details

Methods

fmap21 :: (forall (h :: k1) (i :: k2). a h i -> b h i) -> SArgs a j -> SArgs b j Source #

JmEq2 abt => JmEq1 (SArgs abt :: [([Hakaru], Hakaru)] -> *) Source # 
Instance details

Methods

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

Eq2 abt => Eq1 (SArgs abt :: [([Hakaru], Hakaru)] -> *) Source # 
Instance details

Methods

eq1 :: SArgs abt i -> SArgs abt i -> Bool Source #

Show2 abt => Show1 (SArgs abt :: [([Hakaru], Hakaru)] -> *) Source # 
Instance details

Methods

showsPrec1 :: Int -> SArgs abt i -> ShowS Source #

show1 :: SArgs abt i -> String Source #

Eq2 abt => Eq (SArgs abt args) Source # 
Instance details

Methods

(==) :: SArgs abt args -> SArgs abt args -> Bool #

(/=) :: SArgs abt args -> SArgs abt args -> Bool #

Show2 abt => Show (SArgs abt args) Source # 
Instance details

Methods

showsPrec :: Int -> SArgs abt args -> ShowS #

show :: SArgs abt args -> String #

showList :: [SArgs abt args] -> ShowS #

type LC (a :: Hakaru) = '('[], a) Source #

Locally closed values (i.e., not binding forms) of a given type. TODO: come up with a better name

getSArgsSing :: forall abt xs m. Applicative m => (forall ys a. abt ys a -> m (Sing a)) -> SArgs abt xs -> m (SArgsSing xs) Source #