Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Three Parameter Functors of arbitrary varience.
Synopsis
- type Trifunctor cat1 cat2 cat3 p = (MapArg3 cat3 cat2 cat1 p, forall x. MapArg2 cat2 cat1 (p x), forall x y. MapArg1 cat1 (p x y))
- trimap :: forall cat1 cat2 cat3 p. Trifunctor cat1 cat2 cat3 p => forall a b c a' b' c'. (a `cat3` a') -> (b `cat2` b') -> (c `cat1` c') -> p a b c -> p a' b' c'
Documentation
type Trifunctor cat1 cat2 cat3 p = (MapArg3 cat3 cat2 cat1 p, forall x. MapArg2 cat2 cat1 (p x), forall x y. MapArg1 cat1 (p x y)) Source #
A CategoricalFunctor
of kind Type -> Type -> Type
mapping from an
arbitrary category cat1
to a functor category cat2 ~> cat3 ~> (->)
.
trimap :: forall cat1 cat2 cat3 p. Trifunctor cat1 cat2 cat3 p => forall a b c a' b' c'. (a `cat3` a') -> (b `cat2` b') -> (c `cat1` c') -> p a b c -> p a' b' c' Source #
Lift a morphism cat1 a a'
, a morphism cat2 b b'
, and a morphism cat3 c c'
into a -- function p a b c -> p a' b' c'
.
Orphan instances
MapArg3 (->) (->) (->) (,,) Source # | |
MapArg3 (->) (->) (->) ((,,,) x :: Type -> Type -> Type -> Type) Source # | |
MapArg3 (->) (->) (->) ((,,,,) x x' :: Type -> Type -> Type -> Type) Source # | |
MapArg3 (->) (->) (->) ((,,,,,) x x' x'' :: Type -> Type -> Type -> Type) Source # | |
MapArg3 (->) (->) (->) ((,,,,,,) x x' x'' x''' :: Type -> Type -> Type -> Type) Source # | |
CategoricalFunctor (,,) Source # | |
CategoricalFunctor ((,,,) x :: Type -> Type -> Type -> Type) Source # | |
CategoricalFunctor ((,,,,) x x' :: Type -> Type -> Type -> Type) Source # | |
CategoricalFunctor ((,,,,,) x x' x'' :: Type -> Type -> Type -> Type) Source # | |
CategoricalFunctor ((,,,,,,) x x' x'' x''' :: Type -> Type -> Type -> Type) Source # | |