Idris2Doc : Control.Category.Promonad

Control.Category.Promonad

(source)

Definitions

interfacePromonad : HomType->Type
  A *promonad* (short for profunctor monad, no relation to regular
Prelude monads) is a monad in the bicategory of profunctors.

Equivalently, a promonad is a category equipped with an
identity-on-objects functor from the category `Typ`.

Laws - `funit` is functorial (see `CatFunctor`), meaning:
* `funit id = id`
* `funit f . funit g = funit (f . g)`

Parameters: cat
Constraints: Category cat
Methods:
funit : (a->b) ->catab
  The unit transformation of the promonad.
Equivalently, the action of the unit functor on morphisms.

Implementations:
PromonadMorphism
Monadm=>Promonad (Kleislimorphismm)
funit : Promonadcat=> (a->b) ->catab
  The unit transformation of the promonad.
Equivalently, the action of the unit functor on morphisms.

Totality: total
Visibility: public export
interfacePromonad0 : HomType0->Type
  Like `Promonad`, but allows the category's objects to be wrapped
using `Wrap0`. This is typically the more practical option.

Parameters: cat
Constraints: Category cat
Methods:
funitW : (a->b) ->cat (W0a) (W0b)
  The unit transformation of the promonad.
Equivalently, the action of the unit functor on morphisms.
funitW : Promonad0cat=> (a->b) ->cat (W0a) (W0b)
  The unit transformation of the promonad.
Equivalently, the action of the unit functor on morphisms.

Totality: total
Visibility: public export