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 #
Using parametricity as an approximation of a natural transformation in two arguments.
class BifunctorFunctor (t :: (k -> k1 -> Type) -> k2 -> k3 -> Type) where #
Instances
class BifunctorFunctor t => BifunctorMonad (t :: (k -> k1 -> Type) -> k -> k1 -> Type) where #
Methods
bireturn :: forall (p :: k -> k1 -> Type). p :-> t p #
bibind :: forall (p :: k -> k1 -> Type) (q :: k -> k1 -> Type). (p :-> t q) -> t p :-> t q #
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 #
Minimal complete definition
biextract, (biextend | biduplicate)
Methods
biextract :: forall (p :: k -> k1 -> Type). t p :-> p #
biextend :: forall (p :: k -> k1 -> Type) (q :: k -> k1 -> Type). (t p :-> q) -> t p :-> t q #
biduplicate :: forall (p :: k -> k1 -> Type). t p :-> t (t p) #
Instances
BifunctorComonad (Product p :: (k -> k1 -> Type) -> k -> k1 -> Type) # | |
Defined in Data.Bifunctor.Product | |
Comonad f => BifunctorComonad (Tannen f :: (k -> k1 -> Type) -> k -> k1 -> Type) # | |
Defined in Data.Bifunctor.Tannen |