Idris2Doc : Data.Profunctor.Types

Data.Profunctor.Types

(source)
This module contains the Profunctor interface itself, along with a few
examples of profunctors.

Definitions

interfaceProfunctor : (Type->Type->Type) ->Type
  An interface for (self-enriched) profunctors `Idr -/-> Idr`.

Formally, a profunctor is a binary functor that is contravariant in its
first argument and covariant in its second. A common example of a profunctor
is the (non-dependent) function type.

Implementations can be defined by specifying either `dimap` or both `lmap`
and `rmap`.

Laws:
* `dimap id id = id`
* `dimap (f . g) (h . i) = dimap g h . dimap f i`

Parameters: p
Methods:
dimap : (a->b) -> (c->d) ->pbc->pad
  Map over both parameters of a profunctor at the same time, with the
left function argument mapping contravariantly.
lmap : (a->b) ->pbc->pac
  Map contravariantly over the first parameter of a profunctor.
rmap : (b->c) ->pab->pac
  Map covariantly over the second parameter of a profunctor.

Implementations:
ProfunctorMorphism
Functorf=>Profunctor (Kleislimorphismf)
Functorf=>Profunctor (Starf)
Functorf=>Profunctor (Costarf)
ProfunctorTagged
Profunctor (Forgetr)
Profunctor (Coforgetr)
Bifunctorten=>Profunctorp=>Profunctor (GenTambaratenp)
Profunctor (GenPastrotenp)
Profunctorp=>Profunctor (Closurep)
Profunctor (Environmentp)
dimap : Profunctorp=> (a->b) -> (c->d) ->pbc->pad
  Map over both parameters of a profunctor at the same time, with the
left function argument mapping contravariantly.

Totality: total
Visibility: public export
lmap : Profunctorp=> (a->b) ->pbc->pac
  Map contravariantly over the first parameter of a profunctor.

Totality: total
Visibility: public export
rmap : Profunctorp=> (b->c) ->pab->pac
  Map covariantly over the second parameter of a profunctor.

Totality: total
Visibility: public export
0(:->) : (k->k'->Type) -> (k->k'->Type) ->Type
  A transformation between profunctors that preserves their type parameters.

Formally, this is a natural transformation of functors `Idrᵒᵖ * Idr => Idr`.

If the transformation is `tr`, then we have the following law:
* `tr . dimap f g = dimap f g . tr`

Totality: total
Visibility: public export
Fixity Declaration: infix operator, level 0
recordStar : (k->Type) ->Type->k->Type
  Lift a functor into a profunctor in the return type.

This type is equivalent to `Kleislimorphism` except for the polymorphic type
of `b`.

Totality: total
Visibility: public export
Constructor: 
MkStar : (a->fb) ->Starfab

Projection: 
.applyStar : Starfab->a->fb

Hints:
Applicativef=>Applicative (Starfa)
Contravariantf=>Contravariant (Starfa)
Functorf=>Functor (Starfa)
Functorf=>GenStrongPair (Starf)
Applicativef=>GenStrongEither (Starf)
Monadf=>Monad (Starfa)
Functorf=>Profunctor (Starf)
.applyStar : Starfab->a->fb
Totality: total
Visibility: public export
applyStar : Starfab->a->fb
Totality: total
Visibility: public export
recordCostar : (k->Type) ->k->Type->Type
  Lift a functor into a profunctor in the argument type.

Totality: total
Visibility: public export
Constructor: 
MkCostar : (fa->b) ->Costarfab

Projection: 
.applyCostar : Costarfab->fa->b

Hints:
Applicative (Costarfa)
Functorf=>Closed (Costarf)
Functor (Costarfa)
Monad (Costarfa)
Functorf=>Profunctor (Costarf)
.applyCostar : Costarfab->fa->b
Totality: total
Visibility: public export
applyCostar : Costarfab->fa->b
Totality: total
Visibility: public export
recordTagged : k->Type->Type
  The profunctor that ignores its argument type.
Equivalent to `const id` up to isomorphism.

Totality: total
Visibility: public export
Constructor: 
Tag : b->Taggedab

Projection: 
.runTagged : Taggedab->b

Hints:
Applicative (Taggeda)
Foldable (Taggeda)
Functor (Taggeda)
GenStrongEitherTagged
Monad (Taggeda)
ProfunctorTagged
Traversable (Taggeda)
.runTagged : Taggedab->b
Totality: total
Visibility: public export
runTagged : Taggedab->b
Totality: total
Visibility: public export
retag : Taggedac->Taggedbc
  Retag the value with a different type-level parameter.

Totality: total
Visibility: public export
recordForget : Type->Type->k->Type
  `Forget r` is equivalent to `Star (Const r)`.

Totality: total
Visibility: public export
Constructor: 
MkForget : (a->r) ->Forgetrab

Projection: 
.runForget : Forgetrab->a->r

Hints:
Monoidr=>Applicative (Forgetra)
Contravariant (Forgetra)
Foldable (Forgetra)
Functor (Forgetra)
GenStrongPair (Forgetr)
Monoidr=>GenStrongEither (Forgetr)
Monoidr=>Monad (Forgetra)
Profunctor (Forgetr)
Traversable (Forgetra)
.runForget : Forgetrab->a->r
Totality: total
Visibility: public export
runForget : Forgetrab->a->r
Totality: total
Visibility: public export
reforget : Forgetrab->Forgetrac
Totality: total
Visibility: public export
recordCoforget : Type->k->Type->Type
  `Coforget r` is equivalent to `Costar (Const r)`.

Totality: total
Visibility: public export
Constructor: 
MkCoforget : (r->b) ->Coforgetrab

Projection: 
.runCoforget : Coforgetrab->r->b

Hints:
Applicative (Coforgetra)
Bifunctor (Coforgetr)
Functor (Coforgetra)
GenStrongEither (Coforgetr)
Monad (Coforgetra)
Profunctor (Coforgetr)
.runCoforget : Coforgetrab->r->b
Totality: total
Visibility: public export
runCoforget : Coforgetrab->r->b
Totality: total
Visibility: public export
recoforget : Coforgetrac->Coforgetrbc
Totality: total
Visibility: public export