prob-fx-0.1.0.2: A library for modular probabilistic modelling
Safe HaskellNone
LanguageHaskell2010

OpenSum

Description

An open sum implementation for value types.

Synopsis

Documentation

data OpenSum (as :: [*]) where Source #

Open sum of value types

Constructors

UnsafeOpenSum :: Int -> a -> OpenSum as 

Instances

Instances details
(Eq a, Eq (OpenSum as)) => Eq (OpenSum (a ': as)) Source # 
Instance details

Defined in OpenSum

Methods

(==) :: OpenSum (a ': as) -> OpenSum (a ': as) -> Bool #

(/=) :: OpenSum (a ': as) -> OpenSum (a ': as) -> Bool #

Eq (OpenSum ('[] :: [Type])) Source # 
Instance details

Defined in OpenSum

Methods

(==) :: OpenSum '[] -> OpenSum '[] -> Bool #

(/=) :: OpenSum '[] -> OpenSum '[] -> Bool #

Show a => Show (OpenSum '[a]) Source # 
Instance details

Defined in OpenSum

Methods

showsPrec :: Int -> OpenSum '[a] -> ShowS #

show :: OpenSum '[a] -> String #

showList :: [OpenSum '[a]] -> ShowS #

(Show a, Show (OpenSum as)) => Show (OpenSum (a ': as)) Source # 
Instance details

Defined in OpenSum

Methods

showsPrec :: Int -> OpenSum (a ': as) -> ShowS #

show :: OpenSum (a ': as) -> String #

showList :: [OpenSum (a ': as)] -> ShowS #

class FindElem a as => Member (a :: *) (as :: [*]) where Source #

Safely inject and project a value into an open sum

Methods

inj :: a -> OpenSum as Source #

prj :: OpenSum as -> Maybe a Source #

Instances

Instances details
FindElem a as => Member a as Source # 
Instance details

Defined in OpenSum

Methods

inj :: a -> OpenSum as Source #

prj :: OpenSum as -> Maybe a Source #

(Typeable a, a ~ a') => Member a '[a'] Source # 
Instance details

Defined in OpenSum

Methods

inj :: a -> OpenSum '[a'] Source #

prj :: OpenSum '[a'] -> Maybe a Source #