extensible-sp-0.1.0.0: light-weight, extensible sums and products over types and kinds

Safe HaskellSafe
LanguageHaskell2010

Data.Extensible.Sum1

Documentation

data (f :||: g) a b Source #

Constructors

InL (f a b) 
InR (g a b) 

Instances

(:>||:) c a => Sum1 ((:||:) c b) a Source # 

Methods

peek1 :: (c :||: b) a b -> Maybe (a a b) Source #

lft1 :: a a b -> (c :||: b) a b Source #

Sum1 ((:||:) f g) g Source # 

Methods

peek1 :: (f :||: g) a b -> Maybe (g a b) Source #

lft1 :: g a b -> (f :||: g) a b Source #

class Sum1 c s where Source #

Minimal complete definition

peek1, lft1

Methods

peek1 :: c a b -> Maybe (s a b) Source #

lft1 :: s a b -> c a b Source #

Instances

Sum1 f f Source # 

Methods

peek1 :: f a b -> Maybe (f a b) Source #

lft1 :: f a b -> f a b Source #

(:>||:) c a => Sum1 ((:||:) c b) a Source # 

Methods

peek1 :: (c :||: b) a b -> Maybe (a a b) Source #

lft1 :: a a b -> (c :||: b) a b Source #

Sum1 ((:||:) f g) g Source # 

Methods

peek1 :: (f :||: g) a b -> Maybe (g a b) Source #

lft1 :: g a b -> (f :||: g) a b Source #

type (:>||:) w a = Sum1 w a Source #