Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
Synopsis
- type (:->) (p :: k -> k1 -> Type) (q :: k -> k1 -> Type) = forall (a :: k) (b :: k1). p a b -> q a b
- class BifunctorFunctor (t :: (k -> k1 -> Type) -> k2 -> k3 -> Type) where
- class BifunctorFunctor t => BifunctorMonad (t :: (k -> k1 -> Type) -> k -> k1 -> Type) where
- biliftM :: forall {k1} {k2} (t :: (k1 -> k2 -> Type) -> k1 -> k2 -> Type) (p :: k1 -> k2 -> Type) (q :: k1 -> k2 -> Type). BifunctorMonad t => (p :-> q) -> t p :-> t q
- class BifunctorFunctor t => BifunctorComonad (t :: (k -> k1 -> Type) -> k -> k1 -> Type) where
- biliftW :: forall {k1} {k2} (t :: (k1 -> k2 -> Type) -> k1 -> k2 -> Type) (p :: k1 -> k2 -> Type) (q :: k1 -> k2 -> Type). BifunctorComonad t => (p :-> q) -> t p :-> t q
Documentation
type (:->) (p :: k -> k1 -> Type) (q :: k -> k1 -> Type) = forall (a :: k) (b :: k1). p a b -> q a b infixr 0 Source #
Using parametricity as an approximation of a natural transformation in two arguments.
class BifunctorFunctor (t :: (k -> k1 -> Type) -> k2 -> k3 -> Type) where Source #
Instances
BifunctorFunctor (Flip :: (k3 -> k2 -> Type) -> k2 -> k3 -> Type) Source # | |
BifunctorFunctor (Product p :: (k2 -> k3 -> Type) -> k2 -> k3 -> Type) Source # | |
BifunctorFunctor (Sum p :: (k2 -> k3 -> Type) -> k2 -> k3 -> Type) Source # | |
Functor f => BifunctorFunctor (Tannen f :: (k2 -> k3 -> Type) -> k2 -> k3 -> Type) Source # | |
class BifunctorFunctor t => BifunctorMonad (t :: (k -> k1 -> Type) -> k -> k1 -> Type) where Source #
bireturn :: forall (p :: k -> k1 -> Type). p :-> t p Source #
bibind :: forall (p :: k -> k1 -> Type) (q :: k -> k1 -> Type). (p :-> t q) -> t p :-> t q Source #
bijoin :: forall (p :: k -> k1 -> Type). t (t p) :-> t p Source #
Instances
BifunctorMonad (Sum p :: (k -> k1 -> Type) -> k -> k1 -> Type) Source # | |
(Functor f, Monad f) => BifunctorMonad (Tannen f :: (k -> k1 -> Type) -> k -> k1 -> Type) Source # | |
Defined in Data.Bifunctor.Tannen |
biliftM :: forall {k1} {k2} (t :: (k1 -> k2 -> Type) -> k1 -> k2 -> Type) (p :: k1 -> k2 -> Type) (q :: k1 -> k2 -> Type). BifunctorMonad t => (p :-> q) -> t p :-> t q Source #
class BifunctorFunctor t => BifunctorComonad (t :: (k -> k1 -> Type) -> k -> k1 -> Type) where Source #
biextract, (biextend | biduplicate)
biextract :: forall (p :: k -> k1 -> Type). t p :-> p Source #
biextend :: forall (p :: k -> k1 -> Type) (q :: k -> k1 -> Type). (t p :-> q) -> t p :-> t q Source #
biduplicate :: forall (p :: k -> k1 -> Type). t p :-> t (t p) Source #
Instances
BifunctorComonad (Product p :: (k -> k1 -> Type) -> k -> k1 -> Type) Source # | |
Defined in Data.Bifunctor.Product | |
Comonad f => BifunctorComonad (Tannen f :: (k -> k1 -> Type) -> k -> k1 -> Type) Source # | |
Defined in Data.Bifunctor.Tannen |