bifunctors-5.5.14: Bifunctors
Safe Haskell Safe
Language Haskell2010

Data.Bifunctor.Functor

Synopsis

Documentation

type (:->) p q = forall a b. p a b -> q a b infixr 0 Source #

Using parametricity as an approximation of a natural transformation in two arguments.

class BifunctorFunctor t where Source #

Methods

bifmap :: (p :-> q) -> t p :-> t q Source #

Instances

Instances details
BifunctorFunctor ( Flip :: (k1 -> k2 -> Type ) -> k2 -> k1 -> Type ) Source #
Instance details

Defined in Data.Bifunctor.Flip

Methods

bifmap :: forall (p :: k -> k -> Type ) (q :: k -> k -> Type ). (p :-> q) -> Flip p :-> Flip q Source #

BifunctorFunctor ( Product p :: (k1 -> k2 -> Type ) -> k1 -> k2 -> Type ) Source #
Instance details

Defined in Data.Bifunctor.Product

Methods

bifmap :: forall (p0 :: k -> k -> Type ) (q :: k -> k -> Type ). (p0 :-> q) -> Product p p0 :-> Product p q Source #

BifunctorFunctor ( Sum p :: (k1 -> k2 -> Type ) -> k1 -> k2 -> Type ) Source #
Instance details

Defined in Data.Bifunctor.Sum

Methods

bifmap :: forall (p0 :: k -> k -> Type ) (q :: k -> k -> Type ). (p0 :-> q) -> Sum p p0 :-> Sum p q Source #

Functor f => BifunctorFunctor ( Tannen f :: (k1 -> k2 -> Type ) -> k1 -> k2 -> Type ) Source #
Instance details

Defined in Data.Bifunctor.Tannen

Methods

bifmap :: forall (p :: k -> k -> Type ) (q :: k -> k -> Type ). (p :-> q) -> Tannen f p :-> Tannen f q Source #

class BifunctorFunctor t => BifunctorMonad t where Source #

Minimal complete definition

bireturn , ( bibind | bijoin )

Instances

Instances details
BifunctorMonad ( Sum p :: (k1 -> k2 -> Type ) -> k1 -> k2 -> Type ) Source #
Instance details

Defined in Data.Bifunctor.Sum

Methods

bireturn :: forall (p0 :: k -> k -> Type ). p0 :-> Sum p p0 Source #

bibind :: forall (p0 :: k -> k -> Type ) (q :: k -> k -> Type ). (p0 :-> Sum p q) -> Sum p p0 :-> Sum p q Source #

bijoin :: forall (p0 :: k -> k -> Type ). Sum p ( Sum p p0) :-> Sum p p0 Source #

( Functor f, Monad f) => BifunctorMonad ( Tannen f :: (k1 -> k2 -> Type ) -> k1 -> k2 -> Type ) Source #
Instance details

Defined in Data.Bifunctor.Tannen

Methods

bireturn :: forall (p :: k -> k -> Type ). p :-> Tannen f p Source #

bibind :: forall (p :: k -> k -> Type ) (q :: k -> k -> Type ). (p :-> Tannen f q) -> Tannen f p :-> Tannen f q Source #

bijoin :: forall (p :: k -> k -> Type ). Tannen f ( Tannen f p) :-> Tannen f p Source #

class BifunctorFunctor t => BifunctorComonad t where Source #

Minimal complete definition

biextract , ( biextend | biduplicate )

Instances

Instances details
BifunctorComonad ( Product p :: (k1 -> k2 -> Type ) -> k1 -> k2 -> Type ) Source #
Instance details

Defined in Data.Bifunctor.Product

Methods

biextract :: forall (p0 :: k -> k -> Type ). Product p p0 :-> p0 Source #

biextend :: forall (p0 :: k -> k -> Type ) (q :: k -> k -> Type ). ( Product p p0 :-> q) -> Product p p0 :-> Product p q Source #

biduplicate :: forall (p0 :: k -> k -> Type ). Product p p0 :-> Product p ( Product p p0) Source #

Comonad f => BifunctorComonad ( Tannen f :: (k1 -> k2 -> Type ) -> k1 -> k2 -> Type ) Source #
Instance details

Defined in Data.Bifunctor.Tannen

Methods

biextract :: forall (p :: k -> k -> Type ). Tannen f p :-> p Source #

biextend :: forall (p :: k -> k -> Type ) (q :: k -> k -> Type ). ( Tannen f p :-> q) -> Tannen f p :-> Tannen f q Source #

biduplicate :: forall (p :: k -> k -> Type ). Tannen f p :-> Tannen f ( Tannen f p) Source #