profunctors-5.6.2: Profunctors

Copyright | (C) 2015 Edward Kmett
License | BSD-style (see the file LICENSE)
Maintainer | Edward Kmett <ekmett@gmail.com>
Stability | experimental
Portability | non-portable, MPTCs, fundeps
Safe Haskell | Safe
Language | Haskell2010

Data.Profunctor.Adjunction

Description

Synopsis

- class (ProfunctorFunctor f, ProfunctorFunctor u) => ProfunctorAdjunction (f :: (Type -> Type -> Type) -> Type -> Type -> Type) (u :: (Type -> Type -> Type) -> Type -> Type -> Type) | f -> u, u -> f where
  - unit :: forall (p :: Type -> Type -> Type). Profunctor p => p :-> u (f p)
  - counit :: forall (p :: Type -> Type -> Type). Profunctor p => f (u p) :-> p

# Documentation

class (ProfunctorFunctor f, ProfunctorFunctor u) => ProfunctorAdjunction (f :: (Type -> Type -> Type) -> Type -> Type -> Type) (u :: (Type -> Type -> Type) -> Type -> Type -> Type) | f -> u, u -> f where #

Laws:

    unit . counit ≡ id
    counit . unit ≡ id

Methods

unit :: forall (p :: Type -> Type -> Type). Profunctor p => p :-> u (f p) #

counit :: forall (p :: Type -> Type -> Type). Profunctor p => f (u p) :-> p #

#### Instances

Instances details

ProfunctorAdjunction CopastroSum CotambaraSum # |
Instance details Defined in Data.Profunctor.Choice Methods unit :: forall (p :: Type -> Type -> Type). Profunctor p => p :-> CotambaraSum (CopastroSum p) # counit :: forall (p :: Type -> Type -> Type). Profunctor p => CopastroSum (CotambaraSum p) :-> p #
ProfunctorAdjunction PastroSum TambaraSum # |
Instance details Defined in Data.Profunctor.Choice Methods unit :: forall (p :: Type -> Type -> Type). Profunctor p => p :-> TambaraSum (PastroSum p) # counit :: forall (p :: Type -> Type -> Type). Profunctor p => PastroSum (TambaraSum p) :-> p #
ProfunctorAdjunction Environment Closure # |
Instance details Defined in Data.Profunctor.Closed Methods unit :: forall (p :: Type -> Type -> Type). Profunctor p => p :-> Closure (Environment p) # counit :: forall (p :: Type -> Type -> Type). Profunctor p => Environment (Closure p) :-> p #
ProfunctorAdjunction Copastro Cotambara # |
Instance details Defined in Data.Profunctor.Strong Methods unit :: forall (p :: Type -> Type -> Type). Profunctor p => p :-> Cotambara (Copastro p) # counit :: forall (p :: Type -> Type -> Type). Profunctor p => Copastro (Cotambara p) :-> p #
ProfunctorAdjunction Pastro Tambara # |
Instance details Defined in Data.Profunctor.Strong Methods unit :: forall (p :: Type -> Type -> Type). Profunctor p => p :-> Tambara (Pastro p) # counit :: forall (p :: Type -> Type -> Type). Profunctor p => Pastro (Tambara p) :-> p #
ProfunctorAdjunction (Procompose p :: (Type -> Type -> Type) -> Type -> Type -> Type) (Rift p :: (Type -> Type -> Type) -> Type -> Type -> Type) # |
Instance details Defined in Data.Profunctor.Composition Methods unit :: forall (p0 :: Type -> Type -> Type). Profunctor p0 => p0 :-> Rift p (Procompose p p0) # counit :: forall (p0 :: Type -> Type -> Type). Profunctor p0 => Procompose p (Rift p p0) :-> p0 #