Safe Haskell | None |
---|---|
Language | Haskell2010 |
Documentation
class SymmetricProduct k => MonoidalProduct k where Source #
(***) :: (al `k` bl) -> (ar `k` br) -> (al, ar) `k` (bl, br) Source #
Instances
MonoidalProduct ((->) :: Type -> Type -> Type) Source # | |
r ~ 'Req 'HasCategory 'HasSymmetricProduct symS 'HasMonoidalProduct monS cart cocart rec fix => MonoidalProduct (Catalyst r c) Source # | |
class SymmetricSum k => MonoidalSum k where Source #
(+++) :: (al `k` bl) -> (ar `k` br) -> Either al ar `k` Either bl br Source #
Instances
MonoidalSum ((->) :: Type -> Type -> Type) Source # | |
r ~ 'Req 'HasCategory symP 'HasSymmetricSum monP 'HasMonoidalSum cart cocart rec fix => MonoidalSum (Catalyst r c) Source # | |
class Category k => SymmetricProduct k where Source #
Instances
SymmetricProduct ((->) :: Type -> Type -> Type) Source # | |
r ~ 'Req 'HasCategory 'HasSymmetricProduct symS monP monS cart cocart rec fix => SymmetricProduct (Catalyst r c) Source # | |
class Category k => SymmetricSum k where Source #
swapE :: Either l r `k` Either r l Source #
reassocE :: Either a (Either b c) `k` Either (Either a b) c Source #
Instances
SymmetricSum ((->) :: Type -> Type -> Type) Source # | |
r ~ 'Req 'HasCategory symP 'HasSymmetricSum monP monS cart cocart rec fix => SymmetricSum (Catalyst r c) Source # | |
class CategoryPlus k => CategoryZero k where Source #