freer-0.2.4.1: Implementation of the Freer Monad
Data.Open.Union.Internal
data Union r v where Source #
Constructors
Instances
Methods
fmap :: (a -> b) -> Union (((* -> *) ': f1) (((* -> *) ': f2) fs)) a -> Union (((* -> *) ': f1) (((* -> *) ': f2) fs)) b #
(<$) :: a -> Union (((* -> *) ': f1) (((* -> *) ': f2) fs)) b -> Union (((* -> *) ': f1) (((* -> *) ': f2) fs)) a #
fmap :: (a -> b) -> Union (((* -> *) ': f) [* -> *]) a -> Union (((* -> *) ': f) [* -> *]) b #
(<$) :: a -> Union (((* -> *) ': f) [* -> *]) b -> Union (((* -> *) ': f) [* -> *]) a #
data Nat Source #
data P n Source #
class Member' t r n where Source #
Minimal complete definition
inj', prj'
inj' :: P n -> t v -> Union r v Source #
prj' :: P n -> Union r v -> Maybe (t v) Source #
inj' :: P Z -> t v -> Union r v Source #
prj' :: P Z -> Union r v -> Maybe (t v) Source #
inj' :: P (S n) -> t v -> Union r v Source #
prj' :: P (S n) -> Union r v -> Maybe (t v) Source #
type family FindElem (t :: * -> *) r :: Nat where ... Source #
Equations
type family EQU (a :: k) (b :: k) :: Bool where ... Source #
decomp :: Union (t ': r) v -> Either (Union r v) (t v) Source #
weaken :: Union (t ': r) w -> Union (any ': (t ': r)) w Source #
extract :: Union '[t] v -> t v Source #
class Member' t r (FindElem t r) => Member t r where Source #
inj, prj
inj :: t v -> Union r v Source #
prj :: Union r v -> Maybe (t v) Source #