| Safe Haskell | Safe |
|---|---|
| Language | Haskell2010 |
Data.Bifunctor.Functor
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 #
Methods
bifmap :: forall (p :: k -> k1 -> Type) (q :: k -> k1 -> Type). (p :-> q) -> t p :-> t q 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 #
Methods
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 #
Minimal complete definition
biextract, (biextend | biduplicate)
Methods
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 Methods biextract :: forall (p0 :: k -> k1 -> Type). Product p p0 :-> p0 Source # biextend :: forall (p0 :: k -> k1 -> Type) (q :: k -> k1 -> Type). (Product p p0 :-> q) -> Product p p0 :-> Product p q Source # biduplicate :: forall (p0 :: k -> k1 -> Type). Product p p0 :-> Product p (Product p p0) Source # | |
| Comonad f => BifunctorComonad (Tannen f :: (k -> k1 -> Type) -> k -> k1 -> Type) Source # | |
Defined in Data.Bifunctor.Tannen | |