proarrow
Safe HaskellNone
LanguageGHC2024

Proarrow.Core

Description

 
Synopsis

Type Infrastructure

Basic Type Definitions

type (+->) j k = k -> j -> Type infixr 0 Source Github #

The kind j +-> k of profunctors from category j to category k. Note that this follows mathematical convention, swapping the order compared to Haskell's contravariant-first ordering.

type CAT k = k +-> k Source Github #

The kind of categories on kind k.

type OB k = k -> Constraint Source Github #

Object constraints for kind k.

type Kind = Type Source Github #

Alias for Type for clarity in kind signatures.

Universal Constraint

class Any (a :: k) Source Github #

A constraint that's always satisfied, used as a default when no specific object constraints are needed.

Instances

Instances details
Any (a :: k) Source Github # 
Instance details

Defined in Proarrow.Core

Category Infrastructure

CategoryOf Class

class Promonad ((~>) :: CAT k) => CategoryOf k Source Github #

Establishes that k is a category by specifying the morphism type and object constraints.

Associated Types

type (~>) :: CAT k infixr 0 Source Github #

The type of morphisms in the category.

type Ob (a :: k) Source Github #

What constraints objects must satisfy.

type Ob (a :: k) = Any a

Instances

Instances details
CategoryOf Nat Source Github #

The (augmented) simplex category is the category of finite ordinals and order preserving maps.

Instance details

Defined in Proarrow.Category.Instance.Simplex

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Simplex

type (~>) = Simplex
type Ob (a :: Nat) 
Instance details

Defined in Proarrow.Category.Instance.Simplex

type Ob (a :: Nat) = IsNat a
CategoryOf Nat Source Github #

The category of qubits, to implement ZX calculus from quantum computing.

Instance details

Defined in Proarrow.Category.Instance.ZX

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.ZX

type (~>) = ZX
type Ob (a :: Nat) 
Instance details

Defined in Proarrow.Category.Instance.ZX

type Ob (a :: Nat) = KnownNat a
CategoryOf BOOL Source Github #

The category of 2 objects and one arrow between them, a.k.a. the walking arrow.

Instance details

Defined in Proarrow.Category.Instance.Bool

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Bool

type (~>) = Booleans
type Ob (b :: BOOL) 
Instance details

Defined in Proarrow.Category.Instance.Bool

type Ob (b :: BOOL) = IsBool b
CategoryOf KIND Source Github #

The category of categories and profunctors between them.

Instance details

Defined in Proarrow.Category.Instance.Cat

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Cat

type (~>) = Cat
type Ob (c :: KIND) 
Instance details

Defined in Proarrow.Category.Instance.Cat

type Ob (c :: KIND) = (Is 'K c, CategoryOf (UN 'K c))
CategoryOf CONSTRAINT Source Github #

The category of type class constraints. An arrow from constraint a to constraint b | means that a implies b, i.e. if a holds then b holds.

Instance details

Defined in Proarrow.Category.Instance.Constraint

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Constraint

type (~>) = (:-)
type Ob (a :: CONSTRAINT) 
Instance details

Defined in Proarrow.Category.Instance.Constraint

type Ob (a :: CONSTRAINT) = Is 'CNSTRNT a
CategoryOf COST Source Github #

Cost category. Categories enriched in the cost category are lawvere metric spaces.

Instance details

Defined in Proarrow.Category.Instance.Cost

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Cost

type (~>) = GTE
type Ob (a :: COST) 
Instance details

Defined in Proarrow.Category.Instance.Cost

type Ob (a :: COST) = IsCost a
CategoryOf FINREL Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinRel

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.FinRel

type (~>) = FinRel
type Ob (a :: FINREL) 
Instance details

Defined in Proarrow.Category.Instance.FinRel

type Ob (a :: FINREL) = (Is 'FR a, SNatI (UN 'FR a))
CategoryOf FINSET Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.FinSet

type (~>) = FinSet
type Ob (a :: FINSET) 
Instance details

Defined in Proarrow.Category.Instance.FinSet

type Ob (a :: FINSET) = (Is 'FS a, SNatI (UN 'FS a))
CategoryOf LINEAR Source Github #

Category of linear functions.

Instance details

Defined in Proarrow.Category.Instance.Linear

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Linear

type (~>) = Linear
type Ob (a :: LINEAR) 
Instance details

Defined in Proarrow.Category.Instance.Linear

type Ob (a :: LINEAR) = Is 'L a
CategoryOf POINTED Source Github #

The category of types with an added point and point-preserving morphisms.

Instance details

Defined in Proarrow.Category.Instance.PointedHask

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

type (~>) = Pointed
type Ob (a :: POINTED) 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

type Ob (a :: POINTED) = a ~ 'P (UN 'P a)
CategoryOf VOID Source Github #

The category with no objects, the initial category.

Instance details

Defined in Proarrow.Category.Instance.Zero

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Zero

type (~>) = Zero
type Ob (a :: VOID) 
Instance details

Defined in Proarrow.Category.Instance.Zero

type Ob (a :: VOID) = Bottom
CategoryOf DOT Source Github # 
Instance details

Defined in Proarrow.Tools.Diagrams.Dot

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Tools.Diagrams.Dot

type (~>) = Dot
type Ob (a :: DOT) 
Instance details

Defined in Proarrow.Tools.Diagrams.Dot

type Ob (a :: DOT) = (Is 'D a, IsList (UN 'D a))
CategoryOf () Source Github #

The category with one object, the terminal category.

Instance details

Defined in Proarrow.Category.Instance.Unit

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Unit

type (~>) = Unit
type Ob (a :: ()) 
Instance details

Defined in Proarrow.Category.Instance.Unit

type Ob (a :: ()) = a ~ '()
CategoryOf Symbol Source Github # 
Instance details

Defined in Proarrow.Tools.Diagrams.Dot

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Tools.Diagrams.Dot

type (~>) = SymRefl
type Ob (s :: Symbol) 
Instance details

Defined in Proarrow.Tools.Diagrams.Dot

type Ob (s :: Symbol) = KnownSymbol s
CategoryOf Type Source Github #

The category of Haskell types (a.k.a Hask), where the arrows are functions.

Instance details

Defined in Proarrow.Core

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Core

type (~>) = (->)
type Ob (a :: Type) 
Instance details

Defined in Proarrow.Core

type Ob (a :: Type) = Any a
HasPushouts k => CategoryOf (COSPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Cospan

type (~>) = Cospan :: COSPAN k -> COSPAN k -> Type
CategoryOf (CODISCRETE k) Source Github #

The codiscrete category has exactly one arrow between every object, every type of kind k is an object.

Instance details

Defined in Proarrow.Category.Instance.Discrete

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Discrete

CategoryOf (DISCRETE k) Source Github #

The discrete category with only identity arrows, every type of kind k is an object.

Instance details

Defined in Proarrow.Category.Instance.Discrete

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Discrete

type (~>) = Discrete :: DISCRETE k -> DISCRETE k -> Type
CategoryOf k => CategoryOf (FAM k) Source Github #

The Fam construction a.k.a. the free coproduct completion of k

Instance details

Defined in Proarrow.Category.Instance.Fam

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Fam

type (~>) = Fam :: FAM k -> FAM k -> Type
CategoryOf (FIN n) Source Github #

The (thin) category of finite ordinals. An arrow from a to b means that a is less than or equal to b.

Instance details

Defined in Proarrow.Category.Instance.Fin

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Fin

type (~>) = LTE :: FIN n -> FIN n -> Type
TracedMonoidal k => CategoryOf (INT k) Source Github #

The Int construction, a.k.a. the geometry of interaction, the free compact closed category on a traced monoidal category.

Instance details

Defined in Proarrow.Category.Instance.IntConstruction

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.IntConstruction

type (~>) = IntConstruction :: INT k -> INT k -> Type
Num a => CategoryOf (MatK a) Source Github #

The category of matrices with entries in a type a, where the objects are natural numbers and the arrows n ~> m are matrices of dimension n by m.

Instance details

Defined in Proarrow.Category.Instance.Mat

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Mat

type (~>) = Mat :: MatK a -> MatK a -> Type
HasPullbacks k => CategoryOf (SPAN k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Span

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Span

type (~>) = Span :: SPAN k -> SPAN k -> Type
CategoryOf k => CategoryOf (REV k) Source Github #

The reverse of the category of k, i.e. with the tensor flipped.

Instance details

Defined in Proarrow.Category.Monoidal.Rev

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Monoidal.Rev

type (~>) = Rev ((~>) :: CAT k)
CategoryOf k => CategoryOf (OPPOSITE k) Source Github #

The opposite category of the category of k.

Instance details

Defined in Proarrow.Category.Opposite

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Opposite

type (~>) = Op ((~>) :: CAT k)
CategoryOf k => CategoryOf (COPROD k) Source Github #

The same category as the category of k, but with coproducts as the tensor.

Instance details

Defined in Proarrow.Object.BinaryCoproduct

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

type (~>) = Coprod (Id :: k -> k -> Type)
CategoryOf k => CategoryOf (PROD k) Source Github #

The same category as the category of k, but with products as the tensor.

Instance details

Defined in Proarrow.Object.BinaryProduct

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Object.BinaryProduct

type (~>) = Prod ((~>) :: CAT k)
CategoryOf k => CategoryOf (LIST k) Source Github #

The category of lists of arrows.

Instance details

Defined in Proarrow.Profunctor.List

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Profunctor.List

type (~>) = List ((~>) :: CAT k)
Monoidal k => CategoryOf [k] Source Github #

The strictified monoidal category, making the unitors and associators identities.

Instance details

Defined in Proarrow.Category.Monoidal.Strictified

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Monoidal.Strictified

type (~>) = Strictified :: [k] -> [k] -> Type
CategoryOf (ADJK a b) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.Adj

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Bicategory.Adj

type (~>) = Adj :: ADJK a b -> ADJK a b -> Type
CategoryOf (PROFK j k) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.Prof

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Bicategory.Prof

type (~>) = Prof :: PROFK j k -> PROFK j k -> Type
(Applicative f, CategoryOf k) => CategoryOf (AP f k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Ap

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Ap

type (~>) = Ap ((~>) :: CAT k) :: AP f k -> AP f k -> Type
(CategoryOf j, CategoryOf k) => CategoryOf (COPRODUCT j k) Source Github #

The coproduct of two categories.

Instance details

Defined in Proarrow.Category.Instance.Coproduct

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Coproduct

type (~>) = ((~>) :: CAT j) :++: ((~>) :: CAT k)
Promonad p => CategoryOf (KLEISLI p) Source Github #

Every promonad makes a category.

Instance details

Defined in Proarrow.Category.Instance.Kleisli

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Kleisli

type (~>) = Kleisli :: KLEISLI p -> KLEISLI p -> Type
CategoryOf (j .-> k) Source Github #

The category of functors and natural transformations.

Instance details

Defined in Proarrow.Category.Instance.Nat

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Nat

type (~>) = Nat' :: (j .-> k) -> (j .-> k) -> Type
CategoryOf k => CategoryOf (SUBCAT ob) Source Github #

The subcategory with objects with instances of the given constraint ob.

Instance details

Defined in Proarrow.Category.Instance.Sub

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Sub

type (~>) = Sub ((~>) :: CAT k) :: SUBCAT ob -> SUBCAT ob -> Type
(j ~ '(), k ~ '()) => CategoryOf (Unit j k) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.Terminal

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Bicategory.Terminal

type (~>) = Terminal :: Unit j k -> Unit j k -> Type
CategoryOf (j +-> k) Source Github #

The category of profunctors and natural transformations between them.

Instance details

Defined in Proarrow.Category.Instance.Prof

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Prof

type (~>) = Prof :: (j +-> k) -> (j +-> k) -> Type
Monoid m => CategoryOf (MONOIDK m) Source Github #

A monoid as a one object category.

Instance details

Defined in Proarrow.Monoid

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Monoid

type (~>) = Mon :: MONOIDK m -> MONOIDK m -> Type
(CategoryOf k1, CategoryOf k2) => CategoryOf (k1, k2) Source Github #

The product of two categories.

Instance details

Defined in Proarrow.Category.Instance.Product

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Product

type (~>) = ((~>) :: CAT k1) :**: ((~>) :: CAT k2)
CategoryOf (k1 -> k2 -> k3 -> k4 -> Type) Source Github #

The category of functors with target category k2 -> k3 -> k4 -> Type.

Instance details

Defined in Proarrow.Category.Instance.Nat

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Nat

type (~>) = Nat :: (k1 -> k2 -> k3 -> k4 -> Type) -> (k1 -> k2 -> k3 -> k4 -> Type) -> Type
CategoryOf (k1 -> k2 -> k3 -> Type) Source Github #

The category of functors with target category k2 -> k3 -> Type. Note that CategoryOf (k1 -> k2 -> Type) is reserved for profunctors.

Instance details

Defined in Proarrow.Category.Instance.Nat

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Nat

type (~>) = Nat :: (k1 -> k2 -> k3 -> Type) -> (k1 -> k2 -> k3 -> Type) -> Type
CategoryOf (k1 -> Type) Source Github #

The category of functors with target category Hask.

Instance details

Defined in Proarrow.Category.Instance.Nat

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Nat

type (~>) = Nat :: (k1 -> Type) -> (k1 -> Type) -> Type
(CategoryOf k, Ob i, Ob j) => CategoryOf (PLAINK k i j) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.CategoryAsBi

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Bicategory.CategoryAsBi

type (~>) = Category :: PLAINK k i j -> PLAINK k i j -> Type
CategoryOf k => CategoryOf (MonK k i j) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.MonoidalAsBi

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Bicategory.MonoidalAsBi

type (~>) = Mon2 :: MonK k i j -> MonK k i j -> Type
SelfAction k => CategoryOf (STT' k i j) Source Github # 
Instance details

Defined in Proarrow.Category.Equipment.Stateful

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Equipment.Stateful

type (~>) = StT :: STT' k i j -> STT' k i j -> Type
Profunctor p => CategoryOf (COLLAGE p) Source Github #

The collage of a profunctor.

Instance details

Defined in Proarrow.Category.Instance.Collage

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Collage

type (~>) = Collage :: COLLAGE p -> COLLAGE p -> Type
Adjunction adj => CategoryOf (DUPLOID adj) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Duploid

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Duploid

type (~>) = Duploid :: DUPLOID adj -> DUPLOID adj -> Type
Ok cs p => CategoryOf (FREE cs p) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Free

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Free

type (~>) = Free :: FREE cs p -> FREE cs p -> Type
(Bicategory kk, Ob0 kk k) => CategoryOf (ENDO kk k) Source Github # 
Instance details

Defined in Proarrow.Category.Monoidal.Endo

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Monoidal.Endo

type (~>) = Endo :: ENDO kk k -> ENDO kk k -> Type
(CategoryOf j, CategoryOf k) => CategoryOf (OPTIC j k c) Source Github # 
Instance details

Defined in Proarrow.Optic

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Optic

type (~>) = Optic_ :: OPTIC j k c -> OPTIC j k c -> Type
CategoryOf (DiscreteK ob j k) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.Bidiscrete

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Bicategory.Bidiscrete

type (~>) = Bidiscrete :: DiscreteK ob j k -> DiscreteK ob j k -> Type
CategoryOf (kk j k2) => CategoryOf (COK kk j k2) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.Co

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Bicategory.Co

type (~>) = Co :: COK kk j k2 -> COK kk j k2 -> Type
CategoryOf (kk k2 j) => CategoryOf (OPK kk j k2) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.Op

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Bicategory.Op

type (~>) = Op :: OPK kk j k2 -> OPK kk j k2 -> Type
(CategoryOf (kk j k2), Bicategory kk) => CategoryOf (Path kk j k2) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.Strictified

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Bicategory.Strictified

type (~>) = Strictified :: Path kk j k2 -> Path kk j k2 -> Type
CategoryOf (kk i j) => CategoryOf (HK kk i j) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.Hom

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Bicategory.Hom

type (~>) = HomW :: HK kk i j -> HK kk i j -> Type
CategoryOf (kk i j) => CategoryOf (SUBCAT tag kk i j) Source Github #

The subcategory with objects with instances of the given constraint `IsOb tag`.

Instance details

Defined in Proarrow.Category.Bicategory.Sub

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Bicategory.Sub

type (~>) = Sub :: SUBCAT tag kk i j -> SUBCAT tag kk i j -> Type
(CategoryOf (jj (Fst ik) (Fst jl)), CategoryOf (kk (Snd ik) (Snd jl))) => CategoryOf (PRODK jj kk ik jl) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.Product

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Bicategory.Product

type (~>) = Prod :: PRODK jj kk ik jl -> PRODK jj kk ik jl -> Type

type Hom k = (~>) :: CAT k Source Github #

A type synonym for (~>) :: CAT k, the type of morphisms in the category of kind k.

Profunctors

Profunctor Class

class (CategoryOf j, CategoryOf k) => Profunctor (p :: j +-> k) where Source Github #

The core profunctor abstraction. A profunctor is contravariant in its first argument and covariant in its second argument.

Laws:

Minimal complete definition

dimap

Methods

dimap :: forall (c :: k) (a :: k) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> p a b -> p c d Source Github #

Map contravariantly over the first argument and covariantly over the second.

(\\) :: forall (a :: k) (b :: j) r. ((Ob a, Ob b) => r) -> p a b -> r infixl 1 Source Github #

Constraint elimination, extracts object constraints from a profunctor heteromorphism.

default (\\) :: forall (a :: k) (b :: j) r. (Ob a, Ob b) => ((Ob a, Ob b) => r) -> p a b -> r Source Github #

Instances

Instances details
Profunctor Simplex Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Simplex

Methods

dimap :: forall (c :: Nat) (a :: Nat) (b :: Nat) (d :: Nat). (c ~> a) -> (b ~> d) -> Simplex a b -> Simplex c d Source Github #

(\\) :: forall (a :: Nat) (b :: Nat) r. ((Ob a, Ob b) => r) -> Simplex a b -> r Source Github #

Profunctor ZX Source Github # 
Instance details

Defined in Proarrow.Category.Instance.ZX

Methods

dimap :: forall (c :: Nat) (a :: Nat) (b :: Nat) (d :: Nat). (c ~> a) -> (b ~> d) -> ZX a b -> ZX c d Source Github #

(\\) :: forall (a :: Nat) (b :: Nat) r. ((Ob a, Ob b) => r) -> ZX a b -> r Source Github #

Profunctor Booleans Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Methods

dimap :: forall (c :: BOOL) (a :: BOOL) (b :: BOOL) (d :: BOOL). (c ~> a) -> (b ~> d) -> Booleans a b -> Booleans c d Source Github #

(\\) :: forall (a :: BOOL) (b :: BOOL) r. ((Ob a, Ob b) => r) -> Booleans a b -> r Source Github #

Profunctor Cat Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

dimap :: forall (c :: KIND) (a :: KIND) (b :: KIND) (d :: KIND). (c ~> a) -> (b ~> d) -> Cat a b -> Cat c d Source Github #

(\\) :: forall (a :: KIND) (b :: KIND) r. ((Ob a, Ob b) => r) -> Cat a b -> r Source Github #

Profunctor (:-) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Constraint

Methods

dimap :: forall (c :: CONSTRAINT) (a :: CONSTRAINT) (b :: CONSTRAINT) (d :: CONSTRAINT). (c ~> a) -> (b ~> d) -> (a :- b) -> c :- d Source Github #

(\\) :: forall (a :: CONSTRAINT) (b :: CONSTRAINT) r. ((Ob a, Ob b) => r) -> (a :- b) -> r Source Github #

Profunctor GTE Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cost

Methods

dimap :: forall (c :: COST) (a :: COST) (b :: COST) (d :: COST). (c ~> a) -> (b ~> d) -> GTE a b -> GTE c d Source Github #

(\\) :: forall (a :: COST) (b :: COST) r. ((Ob a, Ob b) => r) -> GTE a b -> r Source Github #

Profunctor FinRel Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinRel

Methods

dimap :: forall (c :: FINREL) (a :: FINREL) (b :: FINREL) (d :: FINREL). (c ~> a) -> (b ~> d) -> FinRel a b -> FinRel c d Source Github #

(\\) :: forall (a :: FINREL) (b :: FINREL) r. ((Ob a, Ob b) => r) -> FinRel a b -> r Source Github #

Profunctor FinSet Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

Methods

dimap :: forall (c :: FINSET) (a :: FINSET) (b :: FINSET) (d :: FINSET). (c ~> a) -> (b ~> d) -> FinSet a b -> FinSet c d Source Github #

(\\) :: forall (a :: FINSET) (b :: FINSET) r. ((Ob a, Ob b) => r) -> FinSet a b -> r Source Github #

Profunctor Linear Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Linear

Methods

dimap :: forall (c :: LINEAR) (a :: LINEAR) (b :: LINEAR) (d :: LINEAR). (c ~> a) -> (b ~> d) -> Linear a b -> Linear c d Source Github #

(\\) :: forall (a :: LINEAR) (b :: LINEAR) r. ((Ob a, Ob b) => r) -> Linear a b -> r Source Github #

Profunctor Pointed Source Github # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Methods

dimap :: forall (c :: POINTED) (a :: POINTED) (b :: POINTED) (d :: POINTED). (c ~> a) -> (b ~> d) -> Pointed a b -> Pointed c d Source Github #

(\\) :: forall (a :: POINTED) (b :: POINTED) r. ((Ob a, Ob b) => r) -> Pointed a b -> r Source Github #

Profunctor Zero Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Zero

Methods

dimap :: forall (c :: VOID) (a :: VOID) (b :: VOID) (d :: VOID). (c ~> a) -> (b ~> d) -> Zero a b -> Zero c d Source Github #

(\\) :: forall (a :: VOID) (b :: VOID) r. ((Ob a, Ob b) => r) -> Zero a b -> r Source Github #

Profunctor Dot Source Github # 
Instance details

Defined in Proarrow.Tools.Diagrams.Dot

Methods

dimap :: forall (c :: DOT) (a :: DOT) (b :: DOT) (d :: DOT). (c ~> a) -> (b ~> d) -> Dot a b -> Dot c d Source Github #

(\\) :: forall (a :: DOT) (b :: DOT) r. ((Ob a, Ob b) => r) -> Dot a b -> r Source Github #

Profunctor Unit Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Unit

Methods

dimap :: forall (c :: ()) (a :: ()) (b :: ()) (d :: ()). (c ~> a) -> (b ~> d) -> Unit a b -> Unit c d Source Github #

(\\) :: forall (a :: ()) (b :: ()) r. ((Ob a, Ob b) => r) -> Unit a b -> r Source Github #

Profunctor SymRefl Source Github # 
Instance details

Defined in Proarrow.Tools.Diagrams.Dot

Methods

dimap :: forall (c :: Symbol) (a :: Symbol) (b :: Symbol) (d :: Symbol). (c ~> a) -> (b ~> d) -> SymRefl a b -> SymRefl c d Source Github #

(\\) :: forall (a :: Symbol) (b :: Symbol) r. ((Ob a, Ob b) => r) -> SymRefl a b -> r Source Github #

CategoryOf k => Profunctor (Term :: k -> () -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Fam

Methods

dimap :: forall (c :: k) (a :: k) (b :: ()) (d :: ()). (c ~> a) -> (b ~> d) -> Term a b -> Term c d Source Github #

(\\) :: forall (a :: k) (b :: ()) r. ((Ob a, Ob b) => r) -> Term a b -> r Source Github #

Functor m => Profunctor (Kleisli m :: Type -> Type -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Arrow

Methods

dimap :: (c ~> a) -> (b ~> d) -> Kleisli m a b -> Kleisli m c d Source Github #

(\\) :: ((Ob a, Ob b) => r) -> Kleisli m a b -> r Source Github #

Functor w => Profunctor (ComonoidAsCat w :: Type -> Type -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Nat

Methods

dimap :: (c ~> a) -> (b ~> d) -> ComonoidAsCat w a b -> ComonoidAsCat w c d Source Github #

(\\) :: ((Ob a, Ob b) => r) -> ComonoidAsCat w a b -> r Source Github #

Arrow arr => Profunctor (Arr arr :: Type -> Type -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Arrow

Methods

dimap :: (c ~> a) -> (b ~> d) -> Arr arr a b -> Arr arr c d Source Github #

(\\) :: ((Ob a, Ob b) => r) -> Arr arr a b -> r Source Github #

CategoryOf k => Profunctor (Fold :: k -> k -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Fold

Methods

dimap :: forall (c :: k) (a :: k) (b :: k) (d :: k). (c ~> a) -> (b ~> d) -> Fold a b -> Fold c d Source Github #

(\\) :: forall (a :: k) (b :: k) r. ((Ob a, Ob b) => r) -> Fold a b -> r Source Github #

CategoryOf k => Profunctor (Id :: k -> k -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Identity

Methods

dimap :: forall (c :: k) (a :: k) (b :: k) (d :: k). (c ~> a) -> (b ~> d) -> Id a b -> Id c d Source Github #

(\\) :: forall (a :: k) (b :: k) r. ((Ob a, Ob b) => r) -> Id a b -> r Source Github #

Profunctor (Previewing a b :: Type -> Type -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Monoidal.Optic

Methods

dimap :: (c ~> a0) -> (b0 ~> d) -> Previewing a b a0 b0 -> Previewing a b c d Source Github #

(\\) :: ((Ob a0, Ob b0) => r) -> Previewing a b a0 b0 -> r Source Github #

Profunctor (Replacing a b :: Type -> Type -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Monoidal.Optic

Methods

dimap :: (c ~> a0) -> (b0 ~> d) -> Replacing a b a0 b0 -> Replacing a b c d Source Github #

(\\) :: ((Ob a0, Ob b0) => r) -> Replacing a b a0 b0 -> r Source Github #

Profunctor (->) Source Github # 
Instance details

Defined in Proarrow.Core

Methods

dimap :: (c ~> a) -> (b ~> d) -> (a -> b) -> c -> d Source Github #

(\\) :: ((Ob a, Ob b) => r) -> (a -> b) -> r Source Github #

Profunctor p => Profunctor (Fix p :: j -> j -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Fix

Methods

dimap :: forall (c :: j) (a :: j) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> Fix p a b -> Fix p c d Source Github #

(\\) :: forall (a :: j) (b :: j) r. ((Ob a, Ob b) => r) -> Fix p a b -> r Source Github #

Profunctor p => Profunctor (FreePromonad p :: j -> j -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Free

Methods

dimap :: forall (c :: j) (a :: j) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> FreePromonad p a b -> FreePromonad p c d Source Github #

(\\) :: forall (a :: j) (b :: j) r. ((Ob a, Ob b) => r) -> FreePromonad p a b -> r Source Github #

(CategoryOf j, CategoryOf k) => Profunctor (DayUnit :: k -> j -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Day

Methods

dimap :: forall (c :: k) (a :: k) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> DayUnit a b -> DayUnit c d Source Github #

(\\) :: forall (a :: k) (b :: j) r. ((Ob a, Ob b) => r) -> DayUnit a b -> r Source Github #

(CategoryOf j, CategoryOf k) => Profunctor (InitialProfunctor :: k -> j -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Initial

Methods

dimap :: forall (c :: k) (a :: k) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> InitialProfunctor a b -> InitialProfunctor c d Source Github #

(\\) :: forall (a :: k) (b :: j) r. ((Ob a, Ob b) => r) -> InitialProfunctor a b -> r Source Github #

(CategoryOf j, CategoryOf k) => Profunctor (TerminalProfunctor :: k -> j -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Terminal

Methods

dimap :: forall (c :: k) (a :: k) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> TerminalProfunctor a b -> TerminalProfunctor c d Source Github #

(\\) :: forall (a :: k) (b :: j) r. ((Ob a, Ob b) => r) -> TerminalProfunctor a b -> r Source Github #

CategoryOf k => Profunctor (Cont r :: k -> k -> Type) Source Github # 
Instance details

Defined in Proarrow.Promonad.Cont

Methods

dimap :: forall (c :: k) (a :: k) (b :: k) (d :: k). (c ~> a) -> (b ~> d) -> Cont r a b -> Cont r c d Source Github #

(\\) :: forall (a :: k) (b :: k) r0. ((Ob a, Ob b) => r0) -> Cont r a b -> r0 Source Github #

(Ob r, Monoidal k) => Profunctor (Reader ('OP r) :: k -> k -> Type) Source Github # 
Instance details

Defined in Proarrow.Promonad.Reader

Methods

dimap :: forall (c :: k) (a :: k) (b :: k) (d :: k). (c ~> a) -> (b ~> d) -> Reader ('OP r) a b -> Reader ('OP r) c d Source Github #

(\\) :: forall (a :: k) (b :: k) r0. ((Ob a, Ob b) => r0) -> Reader ('OP r) a b -> r0 Source Github #

(Monoidal k, Ob s) => Profunctor (State s :: k -> k -> Type) Source Github # 
Instance details

Defined in Proarrow.Promonad.State

Methods

dimap :: forall (c :: k) (a :: k) (b :: k) (d :: k). (c ~> a) -> (b ~> d) -> State s a b -> State s c d Source Github #

(\\) :: forall (a :: k) (b :: k) r. ((Ob a, Ob b) => r) -> State s a b -> r Source Github #

(Ob w, Monoidal k) => Profunctor (Writer w :: k -> k -> Type) Source Github # 
Instance details

Defined in Proarrow.Promonad.Writer

Methods

dimap :: forall (c :: k) (a :: k) (b :: k) (d :: k). (c ~> a) -> (b ~> d) -> Writer w a b -> Writer w c d Source Github #

(\\) :: forall (a :: k) (b :: k) r. ((Ob a, Ob b) => r) -> Writer w a b -> r Source Github #

(CategoryOf k, Profunctor dx) => Profunctor (AsPresheaf dx :: k -> () -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Fam

Methods

dimap :: forall (c :: k) (a :: k) (b :: ()) (d :: ()). (c ~> a) -> (b ~> d) -> AsPresheaf dx a b -> AsPresheaf dx c d Source Github #

(\\) :: forall (a :: k) (b :: ()) r. ((Ob a, Ob b) => r) -> AsPresheaf dx a b -> r Source Github #

Profunctor p => Profunctor (Adj p :: k -> j -> Type) Source Github # 
Instance details

Defined in Proarrow.Adjunction

Methods

dimap :: forall (c :: k) (a :: k) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> Adj p a b -> Adj p c d Source Github #

(\\) :: forall (a :: k) (b :: j) r. ((Ob a, Ob b) => r) -> Adj p a b -> r Source Github #

Relation p => Profunctor (Converse p :: k -> j -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Rel

Methods

dimap :: forall (c :: k) (a :: k) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> Converse p a b -> Converse p c d Source Github #

(\\) :: forall (a :: k) (b :: j) r. ((Ob a, Ob b) => r) -> Converse p a b -> r Source Github #

(CategoryOf j, CategoryOf k, Profunctor p) => Profunctor (UnOp p :: k -> j -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Opposite

Methods

dimap :: forall (c :: k) (a :: k) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> UnOp p a b -> UnOp p c d Source Github #

(\\) :: forall (a :: k) (b :: j) r. ((Ob a, Ob b) => r) -> UnOp p a b -> r Source Github #

FunctorForRep f => Profunctor (Corep f :: k -> j -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Corepresentable

Methods

dimap :: forall (c :: k) (a :: k) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> Corep f a b -> Corep f c d Source Github #

(\\) :: forall (a :: k) (b :: j) r. ((Ob a, Ob b) => r) -> Corep f a b -> r Source Github #

Functor f => Profunctor (Costar f :: k -> j -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Costar

Methods

dimap :: forall (c :: k) (a :: k) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> Costar f a b -> Costar f c d Source Github #

(\\) :: forall (a :: k) (b :: j) r. ((Ob a, Ob b) => r) -> Costar f a b -> r Source Github #

(CategoryOf j, CategoryOf k) => Profunctor (Coyoneda p :: k -> j -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Coyoneda

Methods

dimap :: forall (c :: k) (a :: k) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> Coyoneda p a b -> Coyoneda p c d Source Github #

(\\) :: forall (a :: k) (b :: j) r. ((Ob a, Ob b) => r) -> Coyoneda p a b -> r Source Github #

(CategoryOf j, CategoryOf k) => Profunctor (HaskValue c :: k -> j -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.HaskValue

Methods

dimap :: forall (c0 :: k) (a :: k) (b :: j) (d :: j). (c0 ~> a) -> (b ~> d) -> HaskValue c a b -> HaskValue c c0 d Source Github #

(\\) :: forall (a :: k) (b :: j) r. ((Ob a, Ob b) => r) -> HaskValue c a b -> r Source Github #

Corepresentable p => Profunctor (CorepStar p :: k -> j -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Representable

Methods

dimap :: forall (c :: k) (a :: k) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> CorepStar p a b -> CorepStar p c d Source Github #

(\\) :: forall (a :: k) (b :: j) r. ((Ob a, Ob b) => r) -> CorepStar p a b -> r Source Github #

FunctorForRep f => Profunctor (Rep f :: k -> j -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Representable

Methods

dimap :: forall (c :: k) (a :: k) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> Rep f a b -> Rep f c d Source Github #

(\\) :: forall (a :: k) (b :: j) r. ((Ob a, Ob b) => r) -> Rep f a b -> r Source Github #

Representable p => Profunctor (RepCostar p :: k -> j -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Representable

Methods

dimap :: forall (c :: k) (a :: k) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> RepCostar p a b -> RepCostar p c d Source Github #

(\\) :: forall (a :: k) (b :: j) r. ((Ob a, Ob b) => r) -> RepCostar p a b -> r Source Github #

Functor f => Profunctor (Star f :: k -> j -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Star

Methods

dimap :: forall (c :: k) (a :: k) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> Star f a b -> Star f c d Source Github #

(\\) :: forall (a :: k) (b :: j) r. ((Ob a, Ob b) => r) -> Star f a b -> r Source Github #

Profunctor p => Profunctor (Wrapped p :: k -> j -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Wrapped

Methods

dimap :: forall (c :: k) (a :: k) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> Wrapped p a b -> Wrapped p c d Source Github #

(\\) :: forall (a :: k) (b :: j) r. ((Ob a, Ob b) => r) -> Wrapped p a b -> r Source Github #

(CategoryOf j, CategoryOf k) => Profunctor (Yoneda p :: k -> j -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Yoneda

Methods

dimap :: forall (c :: k) (a :: k) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> Yoneda p a b -> Yoneda p c d Source Github #

(\\) :: forall (a :: k) (b :: j) r. ((Ob a, Ob b) => r) -> Yoneda p a b -> r Source Github #

Profunctor l => Profunctor (AsLeftAdjoint l :: k -> j -> Type) Source Github # 
Instance details

Defined in Proarrow.Universal

Methods

dimap :: forall (c :: k) (a :: k) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> AsLeftAdjoint l a b -> AsLeftAdjoint l c d Source Github #

(\\) :: forall (a :: k) (b :: j) r. ((Ob a, Ob b) => r) -> AsLeftAdjoint l a b -> r Source Github #

Profunctor r => Profunctor (AsRightAdjoint r :: k -> j -> Type) Source Github # 
Instance details

Defined in Proarrow.Universal

Methods

dimap :: forall (c :: k) (a :: k) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> AsRightAdjoint r a b -> AsRightAdjoint r c d Source Github #

(\\) :: forall (a :: k) (b :: j) r0. ((Ob a, Ob b) => r0) -> AsRightAdjoint r a b -> r0 Source Github #

Profunctor p => Profunctor (FromAdjunction p :: k -> j -> Type) Source Github # 
Instance details

Defined in Proarrow.Universal

Methods

dimap :: forall (c :: k) (a :: k) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> FromAdjunction p a b -> FromAdjunction p c d Source Github #

(\\) :: forall (a :: k) (b :: j) r. ((Ob a, Ob b) => r) -> FromAdjunction p a b -> r Source Github #

(Ob a, MonoidalAction m k) => Profunctor (Action a :: k -> k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Monoidal.Action

Methods

dimap :: forall (c :: k) (a0 :: k) (b :: k) (d :: k). (c ~> a0) -> (b ~> d) -> Action a a0 b -> Action a c d Source Github #

(\\) :: forall (a0 :: k) (b :: k) r. ((Ob a0, Ob b) => r) -> Action a a0 b -> r Source Github #

Monad m => Profunctor (Classifying m a b :: Type -> Type -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Monoidal.Optic

Methods

dimap :: (c ~> a0) -> (b0 ~> d) -> Classifying m a b a0 b0 -> Classifying m a b c d Source Github #

(\\) :: ((Ob a0, Ob b0) => r) -> Classifying m a b a0 b0 -> r Source Github #

Profunctor p => Profunctor (n :*.: p :: k -> j -> Type) Source Github # 
Instance details

Defined in Proarrow.Object.Copower

Methods

dimap :: forall (c :: k) (a :: k) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> (n :*.: p) a b -> (n :*.: p) c d Source Github #

(\\) :: forall (a :: k) (b :: j) r. ((Ob a, Ob b) => r) -> (n :*.: p) a b -> r Source Github #

Profunctor p => Profunctor (p :^: n :: k -> j -> Type) Source Github # 
Instance details

Defined in Proarrow.Object.Power

Methods

dimap :: forall (c :: k) (a :: k) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> (p :^: n) a b -> (p :^: n) c d Source Github #

(\\) :: forall (a :: k) (b :: j) r. ((Ob a, Ob b) => r) -> (p :^: n) a b -> r Source Github #

(Profunctor p, Profunctor q) => Profunctor (p :+: q :: k -> j -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Coproduct

Methods

dimap :: forall (c :: k) (a :: k) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> (p :+: q) a b -> (p :+: q) c d Source Github #

(\\) :: forall (a :: k) (b :: j) r. ((Ob a, Ob b) => r) -> (p :+: q) a b -> r Source Github #

(Profunctor p, Profunctor q) => Profunctor (Day p q :: k -> j -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Day

Methods

dimap :: forall (c :: k) (a :: k) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> Day p q a b -> Day p q c d Source Github #

(\\) :: forall (a :: k) (b :: j) r. ((Ob a, Ob b) => r) -> Day p q a b -> r Source Github #

(Monoidal j, Monoidal k, Profunctor p, Profunctor q) => Profunctor (DayExp p q :: k -> j -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Day

Methods

dimap :: forall (c :: k) (a :: k) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> DayExp p q a b -> DayExp p q c d Source Github #

(\\) :: forall (a :: k) (b :: j) r. ((Ob a, Ob b) => r) -> DayExp p q a b -> r Source Github #

(Profunctor p, Profunctor q) => Profunctor (p :~>: q :: k -> j -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Exponential

Methods

dimap :: forall (c :: k) (a :: k) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> (p :~>: q) a b -> (p :~>: q) c d Source Github #

(\\) :: forall (a :: k) (b :: j) r. ((Ob a, Ob b) => r) -> (p :~>: q) a b -> r Source Github #

(Profunctor p, Profunctor q) => Profunctor (p :*: q :: k -> j -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Product

Methods

dimap :: forall (c :: k) (a :: k) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> (p :*: q) a b -> (p :*: q) c d Source Github #

(\\) :: forall (a :: k) (b :: j) r. ((Ob a, Ob b) => r) -> (p :*: q) a b -> r Source Github #

(CategoryOf j, CategoryOf k) => Profunctor (Yo a ('OP b) :: k -> j -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Yoneda

Methods

dimap :: forall (c :: k) (a0 :: k) (b0 :: j) (d :: j). (c ~> a0) -> (b0 ~> d) -> Yo a ('OP b) a0 b0 -> Yo a ('OP b) c d Source Github #

(\\) :: forall (a0 :: k) (b0 :: j) r. ((Ob a0, Ob b0) => r) -> Yo a ('OP b) a0 b0 -> r Source Github #

(CategoryOf c, CategoryOf d) => Profunctor (ExOptic m a b :: d -> c -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Monoidal.Optic

Methods

dimap :: forall (c0 :: d) (a0 :: d) (b0 :: c) (d0 :: c). (c0 ~> a0) -> (b0 ~> d0) -> ExOptic m a b a0 b0 -> ExOptic m a b c0 d0 Source Github #

(\\) :: forall (a0 :: d) (b0 :: c) r. ((Ob a0, Ob b0) => r) -> ExOptic m a b a0 b0 -> r Source Github #

(Profunctor tk, Profunctor tj) => Profunctor (Day tk tj ps :: k -> j -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Promonoidal

Methods

dimap :: forall (c :: k) (a :: k) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> Day tk tj ps a b -> Day tk tj ps c d Source Github #

(\\) :: forall (a :: k) (b :: j) r. ((Ob a, Ob b) => r) -> Day tk tj ps a b -> r Source Github #

Profunctor p => Profunctor (Re p s t :: k -> j -> Type) Source Github # 
Instance details

Defined in Proarrow.Optic

Methods

dimap :: forall (c :: k) (a :: k) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> Re p s t a b -> Re p s t c d Source Github #

(\\) :: forall (a :: k) (b :: j) r. ((Ob a, Ob b) => r) -> Re p s t a b -> r Source Github #

(Profunctor p, Profunctor j2) => Profunctor (Ran ('OP j2) p :: k -> j1 -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Ran

Methods

dimap :: forall (c :: k) (a :: k) (b :: j1) (d :: j1). (c ~> a) -> (b ~> d) -> Ran ('OP j2) p a b -> Ran ('OP j2) p c d Source Github #

(\\) :: forall (a :: k) (b :: j1) r. ((Ob a, Ob b) => r) -> Ran ('OP j2) p a b -> r Source Github #

(Profunctor p, Profunctor j2) => Profunctor (Rift ('OP j2) p :: k -> j1 -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Rift

Methods

dimap :: forall (c :: k) (a :: k) (b :: j1) (d :: j1). (c ~> a) -> (b ~> d) -> Rift ('OP j2) p a b -> Rift ('OP j2) p c d Source Github #

(\\) :: forall (a :: k) (b :: j1) r. ((Ob a, Ob b) => r) -> Rift ('OP j2) p a b -> r Source Github #

(Profunctor p, Profunctor q) => Profunctor (p :.: q :: k -> j2 -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Composition

Methods

dimap :: forall (c :: k) (a :: k) (b :: j2) (d :: j2). (c ~> a) -> (b ~> d) -> (p :.: q) a b -> (p :.: q) c d Source Github #

(\\) :: forall (a :: k) (b :: j2) r. ((Ob a, Ob b) => r) -> (p :.: q) a b -> r Source Github #

CategoryOf k => Profunctor (Hom :: (OPPOSITE k, k) -> () -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Colimit

Methods

dimap :: forall (c :: (OPPOSITE k, k)) (a :: (OPPOSITE k, k)) (b :: ()) (d :: ()). (c ~> a) -> (b ~> d) -> Hom a b -> Hom c d Source Github #

(\\) :: forall (a :: (OPPOSITE k, k)) (b :: ()) r. ((Ob a, Ob b) => r) -> Hom a b -> r Source Github #

Promonad p => Profunctor (KleisliFree p :: KLEISLI p -> j -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Kleisli

Methods

dimap :: forall (c :: KLEISLI p) (a :: KLEISLI p) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> KleisliFree p a b -> KleisliFree p c d Source Github #

(\\) :: forall (a :: KLEISLI p) (b :: j) r. ((Ob a, Ob b) => r) -> KleisliFree p a b -> r Source Github #

(Profunctor p, CategoryOf i, CategoryOf j) => Profunctor (Curry p :: (OPPOSITE j, k) -> i -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

dimap :: forall (c :: (OPPOSITE j, k)) (a :: (OPPOSITE j, k)) (b :: i) (d :: i). (c ~> a) -> (b ~> d) -> Curry p a b -> Curry p c d Source Github #

(\\) :: forall (a :: (OPPOSITE j, k)) (b :: i) r. ((Ob a, Ob b) => r) -> Curry p a b -> r Source Github #

(Profunctor p, Profunctor q) => Profunctor (p :&&&: q :: (i, j2) -> j1 -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

dimap :: forall (c :: (i, j2)) (a :: (i, j2)) (b :: j1) (d :: j1). (c ~> a) -> (b ~> d) -> (p :&&&: q) a b -> (p :&&&: q) c d Source Github #

(\\) :: forall (a :: (i, j2)) (b :: j1) r. ((Ob a, Ob b) => r) -> (p :&&&: q) a b -> r Source Github #

Monoidal k => Profunctor (Tensor :: k -> LIST k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Promonoidal

Methods

dimap :: forall (c :: k) (a :: k) (b :: LIST k) (d :: LIST k). (c ~> a) -> (b ~> d) -> Tensor a b -> Tensor c d Source Github #

(\\) :: forall (a :: k) (b :: LIST k) r. ((Ob a, Ob b) => r) -> Tensor a b -> r Source Github #

Profunctor p => Profunctor (CoprodDom p :: k -> COPROD j -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Star

Methods

dimap :: forall (c :: k) (a :: k) (b :: COPROD j) (d :: COPROD j). (c ~> a) -> (b ~> d) -> CoprodDom p a b -> CoprodDom p c d Source Github #

(\\) :: forall (a :: k) (b :: COPROD j) r. ((Ob a, Ob b) => r) -> CoprodDom p a b -> r Source Github #

Monad m => Profunctor (Updating a b :: Type -> KlCat m -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Monoidal.Optic

Methods

dimap :: forall c a0 (b0 :: KlCat m) (d :: KlCat m). (c ~> a0) -> (b0 ~> d) -> Updating a b a0 b0 -> Updating a b c d Source Github #

(\\) :: forall a0 (b0 :: KlCat m) r. ((Ob a0, Ob b0) => r) -> Updating a b a0 b0 -> r Source Github #

HasPushouts k => Profunctor (Cospan :: COSPAN k -> COSPAN k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

Methods

dimap :: forall (c :: COSPAN k) (a :: COSPAN k) (b :: COSPAN k) (d :: COSPAN k). (c ~> a) -> (b ~> d) -> Cospan a b -> Cospan c d Source Github #

(\\) :: forall (a :: COSPAN k) (b :: COSPAN k) r. ((Ob a, Ob b) => r) -> Cospan a b -> r Source Github #

Profunctor (Codiscrete :: CODISCRETE k -> CODISCRETE k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Discrete

Methods

dimap :: forall (c :: CODISCRETE k) (a :: CODISCRETE k) (b :: CODISCRETE k) (d :: CODISCRETE k). (c ~> a) -> (b ~> d) -> Codiscrete a b -> Codiscrete c d Source Github #

(\\) :: forall (a :: CODISCRETE k) (b :: CODISCRETE k) r. ((Ob a, Ob b) => r) -> Codiscrete a b -> r Source Github #

Profunctor (Discrete :: DISCRETE k -> DISCRETE k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Discrete

Methods

dimap :: forall (c :: DISCRETE k) (a :: DISCRETE k) (b :: DISCRETE k) (d :: DISCRETE k). (c ~> a) -> (b ~> d) -> Discrete a b -> Discrete c d Source Github #

(\\) :: forall (a :: DISCRETE k) (b :: DISCRETE k) r. ((Ob a, Ob b) => r) -> Discrete a b -> r Source Github #

CategoryOf k => Profunctor (Fam :: FAM k -> FAM k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Fam

Methods

dimap :: forall (c :: FAM k) (a :: FAM k) (b :: FAM k) (d :: FAM k). (c ~> a) -> (b ~> d) -> Fam a b -> Fam c d Source Github #

(\\) :: forall (a :: FAM k) (b :: FAM k) r. ((Ob a, Ob b) => r) -> Fam a b -> r Source Github #

Profunctor (LTE :: FIN n -> FIN n -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Fin

Methods

dimap :: forall (c :: FIN n) (a :: FIN n) (b :: FIN n) (d :: FIN n). (c ~> a) -> (b ~> d) -> LTE a b -> LTE c d Source Github #

(\\) :: forall (a :: FIN n) (b :: FIN n) r. ((Ob a, Ob b) => r) -> LTE a b -> r Source Github #

TracedMonoidal k => Profunctor (IntConstruction :: INT k -> INT k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.IntConstruction

Methods

dimap :: forall (c :: INT k) (a :: INT k) (b :: INT k) (d :: INT k). (c ~> a) -> (b ~> d) -> IntConstruction a b -> IntConstruction c d Source Github #

(\\) :: forall (a :: INT k) (b :: INT k) r. ((Ob a, Ob b) => r) -> IntConstruction a b -> r Source Github #

Num a => Profunctor (Mat :: MatK a -> MatK a -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Mat

Methods

dimap :: forall (c :: MatK a) (a0 :: MatK a) (b :: MatK a) (d :: MatK a). (c ~> a0) -> (b ~> d) -> Mat a0 b -> Mat c d Source Github #

(\\) :: forall (a0 :: MatK a) (b :: MatK a) r. ((Ob a0, Ob b) => r) -> Mat a0 b -> r Source Github #

HasPullbacks k => Profunctor (Span :: SPAN k -> SPAN k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Span

Methods

dimap :: forall (c :: SPAN k) (a :: SPAN k) (b :: SPAN k) (d :: SPAN k). (c ~> a) -> (b ~> d) -> Span a b -> Span c d Source Github #

(\\) :: forall (a :: SPAN k) (b :: SPAN k) r. ((Ob a, Ob b) => r) -> Span a b -> r Source Github #

CategoryOf k => Profunctor (Cocone :: LIST k -> COPROD k -> Type) Source Github # 
Instance details

Defined in Proarrow.Object.Pushout

Methods

dimap :: forall (c :: LIST k) (a :: LIST k) (b :: COPROD k) (d :: COPROD k). (c ~> a) -> (b ~> d) -> Cocone a b -> Cocone c d Source Github #

(\\) :: forall (a :: LIST k) (b :: COPROD k) r. ((Ob a, Ob b) => r) -> Cocone a b -> r Source Github #

CategoryOf k => Profunctor (Cone :: PROD k -> LIST k -> Type) Source Github # 
Instance details

Defined in Proarrow.Object.Pullback

Methods

dimap :: forall (c :: PROD k) (a :: PROD k) (b :: LIST k) (d :: LIST k). (c ~> a) -> (b ~> d) -> Cone a b -> Cone c d Source Github #

(\\) :: forall (a :: PROD k) (b :: LIST k) r. ((Ob a, Ob b) => r) -> Cone a b -> r Source Github #

Monoidal k => Profunctor (Strictified :: [k] -> [k] -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Monoidal.Strictified

Methods

dimap :: forall (c :: [k]) (a :: [k]) (b :: [k]) (d :: [k]). (c ~> a) -> (b ~> d) -> Strictified a b -> Strictified c d Source Github #

(\\) :: forall (a :: [k]) (b :: [k]) r. ((Ob a, Ob b) => r) -> Strictified a b -> r Source Github #

Profunctor p => Profunctor (Rev p :: REV k -> REV j -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Monoidal.Rev

Methods

dimap :: forall (c :: REV k) (a :: REV k) (b :: REV j) (d :: REV j). (c ~> a) -> (b ~> d) -> Rev p a b -> Rev p c d Source Github #

(\\) :: forall (a :: REV k) (b :: REV j) r. ((Ob a, Ob b) => r) -> Rev p a b -> r Source Github #

Profunctor p => Profunctor (Op p :: OPPOSITE j -> OPPOSITE k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Opposite

Methods

dimap :: forall (c :: OPPOSITE j) (a :: OPPOSITE j) (b :: OPPOSITE k) (d :: OPPOSITE k). (c ~> a) -> (b ~> d) -> Op p a b -> Op p c d Source Github #

(\\) :: forall (a :: OPPOSITE j) (b :: OPPOSITE k) r. ((Ob a, Ob b) => r) -> Op p a b -> r Source Github #

Profunctor p => Profunctor (Coprod p :: COPROD k -> COPROD j -> Type) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Methods

dimap :: forall (c :: COPROD k) (a :: COPROD k) (b :: COPROD j) (d :: COPROD j). (c ~> a) -> (b ~> d) -> Coprod p a b -> Coprod p c d Source Github #

(\\) :: forall (a :: COPROD k) (b :: COPROD j) r. ((Ob a, Ob b) => r) -> Coprod p a b -> r Source Github #

Profunctor p => Profunctor (Prod p :: PROD k -> PROD j -> Type) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryProduct

Methods

dimap :: forall (c :: PROD k) (a :: PROD k) (b :: PROD j) (d :: PROD j). (c ~> a) -> (b ~> d) -> Prod p a b -> Prod p c d Source Github #

(\\) :: forall (a :: PROD k) (b :: PROD j) r. ((Ob a, Ob b) => r) -> Prod p a b -> r Source Github #

(CategoryOf j, CategoryOf k, Ob ps) => Profunctor (PList ps :: LIST k -> LIST j -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Promonoidal

Methods

dimap :: forall (c :: LIST k) (a :: LIST k) (b :: LIST j) (d :: LIST j). (c ~> a) -> (b ~> d) -> PList ps a b -> PList ps c d Source Github #

(\\) :: forall (a :: LIST k) (b :: LIST j) r. ((Ob a, Ob b) => r) -> PList ps a b -> r Source Github #

Profunctor p => Profunctor (List p :: LIST k -> LIST j -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.List

Methods

dimap :: forall (c :: LIST k) (a :: LIST k) (b :: LIST j) (d :: LIST j). (c ~> a) -> (b ~> d) -> List p a b -> List p c d Source Github #

(\\) :: forall (a :: LIST k) (b :: LIST j) r. ((Ob a, Ob b) => r) -> List p a b -> r Source Github #

CategoryOf k => Profunctor (Hom :: () -> (OPPOSITE k, k) -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Limit

Methods

dimap :: forall (c :: ()) (a :: ()) (b :: (OPPOSITE k, k)) (d :: (OPPOSITE k, k)). (c ~> a) -> (b ~> d) -> Hom a b -> Hom c d Source Github #

(\\) :: forall (a :: ()) (b :: (OPPOSITE k, k)) r. ((Ob a, Ob b) => r) -> Hom a b -> r Source Github #

Promonad p => Profunctor (KleisliForget p :: k -> KLEISLI p -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Kleisli

Methods

dimap :: forall (c :: k) (a :: k) (b :: KLEISLI p) (d :: KLEISLI p). (c ~> a) -> (b ~> d) -> KleisliForget p a b -> KleisliForget p c d Source Github #

(\\) :: forall (a :: k) (b :: KLEISLI p) r. ((Ob a, Ob b) => r) -> KleisliForget p a b -> r Source Github #

(Profunctor p, CategoryOf j, CategoryOf k) => Profunctor (Uncurry p :: k -> (i, j) -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

dimap :: forall (c :: k) (a :: k) (b :: (i, j)) (d :: (i, j)). (c ~> a) -> (b ~> d) -> Uncurry p a b -> Uncurry p c d Source Github #

(\\) :: forall (a :: k) (b :: (i, j)) r. ((Ob a, Ob b) => r) -> Uncurry p a b -> r Source Github #

(Profunctor p, Profunctor q) => Profunctor (p :|||: q :: k -> COPRODUCT i j -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Fam

Methods

dimap :: forall (c :: k) (a :: k) (b :: COPRODUCT i j) (d :: COPRODUCT i j). (c ~> a) -> (b ~> d) -> (p :|||: q) a b -> (p :|||: q) c d Source Github #

(\\) :: forall (a :: k) (b :: COPRODUCT i j) r. ((Ob a, Ob b) => r) -> (p :|||: q) a b -> r Source Github #

(Profunctor l, Profunctor r, CategoryOf k) => Profunctor (l :&&: r :: k -> (x, y) -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Fam

Methods

dimap :: forall (c :: k) (a :: k) (b :: (x, y)) (d :: (x, y)). (c ~> a) -> (b ~> d) -> (l :&&: r) a b -> (l :&&: r) c d Source Github #

(\\) :: forall (a :: k) (b :: (x, y)) r0. ((Ob a, Ob b) => r0) -> (l :&&: r) a b -> r0 Source Github #

Profunctor (Adj :: ADJK a b -> ADJK a b -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.Adj

Methods

dimap :: forall (c :: ADJK a b) (a0 :: ADJK a b) (b0 :: ADJK a b) (d :: ADJK a b). (c ~> a0) -> (b0 ~> d) -> Adj a0 b0 -> Adj c d Source Github #

(\\) :: forall (a0 :: ADJK a b) (b0 :: ADJK a b) r. ((Ob a0, Ob b0) => r) -> Adj a0 b0 -> r Source Github #

Profunctor (Prof :: PROFK j k -> PROFK j k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.Prof

Methods

dimap :: forall (c :: PROFK j k) (a :: PROFK j k) (b :: PROFK j k) (d :: PROFK j k). (c ~> a) -> (b ~> d) -> Prof a b -> Prof c d Source Github #

(\\) :: forall (a :: PROFK j k) (b :: PROFK j k) r. ((Ob a, Ob b) => r) -> Prof a b -> r Source Github #

Promonad p => Profunctor (Kleisli :: KLEISLI p -> KLEISLI p -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Kleisli

Methods

dimap :: forall (c :: KLEISLI p) (a :: KLEISLI p) (b :: KLEISLI p) (d :: KLEISLI p). (c ~> a) -> (b ~> d) -> Kleisli a b -> Kleisli c d Source Github #

(\\) :: forall (a :: KLEISLI p) (b :: KLEISLI p) r. ((Ob a, Ob b) => r) -> Kleisli a b -> r Source Github #

Profunctor (Nat' :: (j .-> k) -> (j .-> k) -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Nat

Methods

dimap :: forall (c :: j .-> k) (a :: j .-> k) (b :: j .-> k) (d :: j .-> k). (c ~> a) -> (b ~> d) -> Nat' a b -> Nat' c d Source Github #

(\\) :: forall (a :: j .-> k) (b :: j .-> k) r. ((Ob a, Ob b) => r) -> Nat' a b -> r Source Github #

Profunctor (Terminal :: Unit '() '() -> Unit '() '() -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.Terminal

Methods

dimap :: forall (c :: Unit '() '()) (a :: Unit '() '()) (b :: Unit '() '()) (d :: Unit '() '()). (c ~> a) -> (b ~> d) -> Terminal a b -> Terminal c d Source Github #

(\\) :: forall (a :: Unit '() '()) (b :: Unit '() '()) r. ((Ob a, Ob b) => r) -> Terminal a b -> r Source Github #

Profunctor (Prof :: (j +-> k) -> (j +-> k) -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Prof

Methods

dimap :: forall (c :: j +-> k) (a :: j +-> k) (b :: j +-> k) (d :: j +-> k). (c ~> a) -> (b ~> d) -> Prof a b -> Prof c d Source Github #

(\\) :: forall (a :: j +-> k) (b :: j +-> k) r. ((Ob a, Ob b) => r) -> Prof a b -> r Source Github #

Profunctor (Nat :: (k1 -> k2 -> k3 -> k4 -> Type) -> (k1 -> k2 -> k3 -> k4 -> Type) -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Nat

Methods

dimap :: forall (c :: k1 -> k2 -> k3 -> k4 -> Type) (a :: k1 -> k2 -> k3 -> k4 -> Type) (b :: k1 -> k2 -> k3 -> k4 -> Type) (d :: k1 -> k2 -> k3 -> k4 -> Type). (c ~> a) -> (b ~> d) -> Nat a b -> Nat c d Source Github #

(\\) :: forall (a :: k1 -> k2 -> k3 -> k4 -> Type) (b :: k1 -> k2 -> k3 -> k4 -> Type) r. ((Ob a, Ob b) => r) -> Nat a b -> r Source Github #

Profunctor (Nat :: (k1 -> k2 -> k3 -> Type) -> (k1 -> k2 -> k3 -> Type) -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Nat

Methods

dimap :: forall (c :: k1 -> k2 -> k3 -> Type) (a :: k1 -> k2 -> k3 -> Type) (b :: k1 -> k2 -> k3 -> Type) (d :: k1 -> k2 -> k3 -> Type). (c ~> a) -> (b ~> d) -> Nat a b -> Nat c d Source Github #

(\\) :: forall (a :: k1 -> k2 -> k3 -> Type) (b :: k1 -> k2 -> k3 -> Type) r. ((Ob a, Ob b) => r) -> Nat a b -> r Source Github #

Profunctor (Nat :: (k1 -> Type) -> (k1 -> Type) -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Nat

Methods

dimap :: forall (c :: k1 -> Type) (a :: k1 -> Type) (b :: k1 -> Type) (d :: k1 -> Type). (c ~> a) -> (b ~> d) -> Nat a b -> Nat c d Source Github #

(\\) :: forall (a :: k1 -> Type) (b :: k1 -> Type) r. ((Ob a, Ob b) => r) -> Nat a b -> r Source Github #

Profunctor p => Profunctor (Sub p :: SUBCAT ob -> SUBCAT ob -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Sub

Methods

dimap :: forall (c :: SUBCAT ob) (a :: SUBCAT ob) (b :: SUBCAT ob) (d :: SUBCAT ob). (c ~> a) -> (b ~> d) -> Sub p a b -> Sub p c d Source Github #

(\\) :: forall (a :: SUBCAT ob) (b :: SUBCAT ob) r. ((Ob a, Ob b) => r) -> Sub p a b -> r Source Github #

(Applicative f, Profunctor p) => Profunctor (Ap p :: AP f k -> AP f j -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Ap

Methods

dimap :: forall (c :: AP f k) (a :: AP f k) (b :: AP f j) (d :: AP f j). (c ~> a) -> (b ~> d) -> Ap p a b -> Ap p c d Source Github #

(\\) :: forall (a :: AP f k) (b :: AP f j) r. ((Ob a, Ob b) => r) -> Ap p a b -> r Source Github #

Profunctor j => Profunctor (LimitAdj j :: COREPK b k -> REPK a k -> Type) Source Github # 
Instance details

Defined in Proarrow.Adjunction

Methods

dimap :: forall (c :: COREPK b k) (a0 :: COREPK b k) (b0 :: REPK a k) (d :: REPK a k). (c ~> a0) -> (b0 ~> d) -> LimitAdj j a0 b0 -> LimitAdj j c d Source Github #

(\\) :: forall (a0 :: COREPK b k) (b0 :: REPK a k) r. ((Ob a0, Ob b0) => r) -> LimitAdj j a0 b0 -> r Source Github #

Monoid m => Profunctor (Mon :: MONOIDK m -> MONOIDK m -> Type) Source Github # 
Instance details

Defined in Proarrow.Monoid

Methods

dimap :: forall (c :: MONOIDK m) (a :: MONOIDK m) (b :: MONOIDK m) (d :: MONOIDK m). (c ~> a) -> (b ~> d) -> Mon a b -> Mon c d Source Github #

(\\) :: forall (a :: MONOIDK m) (b :: MONOIDK m) r. ((Ob a, Ob b) => r) -> Mon a b -> r Source Github #

(Profunctor p, Profunctor q) => Profunctor (p :++: q :: COPRODUCT k1 k2 -> COPRODUCT j1 j2 -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Coproduct

Methods

dimap :: forall (c :: COPRODUCT k1 k2) (a :: COPRODUCT k1 k2) (b :: COPRODUCT j1 j2) (d :: COPRODUCT j1 j2). (c ~> a) -> (b ~> d) -> (p :++: q) a b -> (p :++: q) c d Source Github #

(\\) :: forall (a :: COPRODUCT k1 k2) (b :: COPRODUCT j1 j2) r. ((Ob a, Ob b) => r) -> (p :++: q) a b -> r Source Github #

(Profunctor p, Profunctor q) => Profunctor (p :**: q :: (k1, k2) -> (j1, j2) -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Product

Methods

dimap :: forall (c :: (k1, k2)) (a :: (k1, k2)) (b :: (j1, j2)) (d :: (j1, j2)). (c ~> a) -> (b ~> d) -> (p :**: q) a b -> (p :**: q) c d Source Github #

(\\) :: forall (a :: (k1, k2)) (b :: (j1, j2)) r. ((Ob a, Ob b) => r) -> (p :**: q) a b -> r Source Github #

(Bicategory kk, Ob0 kk h, Ob0 kk i, Ob0 kk j, Ob0 kk k) => Profunctor (Sq' :: (kk j h, SUBCAT Tight kk h i) -> (kk k i, SUBCAT Tight kk j k) -> Type) Source Github # 
Instance details

Defined in Proarrow.Squares

Methods

dimap :: forall (c0 :: (kk j h, SUBCAT Tight kk h i)) (a :: (kk j h, SUBCAT Tight kk h i)) (b :: (kk k i, SUBCAT Tight kk j k)) (d :: (kk k i, SUBCAT Tight kk j k)). (c0 ~> a) -> (b ~> d) -> Sq' a b -> Sq' c0 d Source Github #

(\\) :: forall (a :: (kk j h, SUBCAT Tight kk h i)) (b :: (kk k i, SUBCAT Tight kk j k)) r. ((Ob a, Ob b) => r) -> Sq' a b -> r Source Github #

(CategoryOf k, Ob i, Ob j) => Profunctor (Category :: PLAINK k i j -> PLAINK k i j -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.CategoryAsBi

Methods

dimap :: forall (c :: PLAINK k i j) (a :: PLAINK k i j) (b :: PLAINK k i j) (d :: PLAINK k i j). (c ~> a) -> (b ~> d) -> Category a b -> Category c d Source Github #

(\\) :: forall (a :: PLAINK k i j) (b :: PLAINK k i j) r. ((Ob a, Ob b) => r) -> Category a b -> r Source Github #

CategoryOf k => Profunctor (Mon2 :: MonK k i j -> MonK k i j -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.MonoidalAsBi

Methods

dimap :: forall (c :: MonK k i j) (a :: MonK k i j) (b :: MonK k i j) (d :: MonK k i j). (c ~> a) -> (b ~> d) -> Mon2 a b -> Mon2 c d Source Github #

(\\) :: forall (a :: MonK k i j) (b :: MonK k i j) r. ((Ob a, Ob b) => r) -> Mon2 a b -> r Source Github #

SelfAction k => Profunctor (StT :: STT' k i j -> STT' k i j -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Equipment.Stateful

Methods

dimap :: forall (c :: STT' k i j) (a :: STT' k i j) (b :: STT' k i j) (d :: STT' k i j). (c ~> a) -> (b ~> d) -> StT a b -> StT c d Source Github #

(\\) :: forall (a :: STT' k i j) (b :: STT' k i j) r. ((Ob a, Ob b) => r) -> StT a b -> r Source Github #

Profunctor p => Profunctor (Collage :: COLLAGE p -> COLLAGE p -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Collage

Methods

dimap :: forall (c :: COLLAGE p) (a :: COLLAGE p) (b :: COLLAGE p) (d :: COLLAGE p). (c ~> a) -> (b ~> d) -> Collage a b -> Collage c d Source Github #

(\\) :: forall (a :: COLLAGE p) (b :: COLLAGE p) r. ((Ob a, Ob b) => r) -> Collage a b -> r Source Github #

Adjunction adj => Profunctor (Duploid :: DUPLOID adj -> DUPLOID adj -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Duploid

Methods

dimap :: forall (c :: DUPLOID adj) (a :: DUPLOID adj) (b :: DUPLOID adj) (d :: DUPLOID adj). (c ~> a) -> (b ~> d) -> Duploid a b -> Duploid c d Source Github #

(\\) :: forall (a :: DUPLOID adj) (b :: DUPLOID adj) r. ((Ob a, Ob b) => r) -> Duploid a b -> r Source Github #

Ok cs p => Profunctor (Free :: FREE cs p -> FREE cs p -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Free

Methods

dimap :: forall (c :: FREE cs p) (a :: FREE cs p) (b :: FREE cs p) (d :: FREE cs p). (c ~> a) -> (b ~> d) -> Free a b -> Free c d Source Github #

(\\) :: forall (a :: FREE cs p) (b :: FREE cs p) r. ((Ob a, Ob b) => r) -> Free a b -> r Source Github #

(Bicategory kk, Ob0 kk k) => Profunctor (Endo :: ENDO kk k -> ENDO kk k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Monoidal.Endo

Methods

dimap :: forall (c :: ENDO kk k) (a :: ENDO kk k) (b :: ENDO kk k) (d :: ENDO kk k). (c ~> a) -> (b ~> d) -> Endo a b -> Endo c d Source Github #

(\\) :: forall (a :: ENDO kk k) (b :: ENDO kk k) r. ((Ob a, Ob b) => r) -> Endo a b -> r Source Github #

(CategoryOf j, CategoryOf k) => Profunctor (Optic_ :: OPTIC j k c -> OPTIC j k c -> Type) Source Github # 
Instance details

Defined in Proarrow.Optic

Methods

dimap :: forall (c0 :: OPTIC j k c) (a :: OPTIC j k c) (b :: OPTIC j k c) (d :: OPTIC j k c). (c0 ~> a) -> (b ~> d) -> Optic_ a b -> Optic_ c0 d Source Github #

(\\) :: forall (a :: OPTIC j k c) (b :: OPTIC j k c) r. ((Ob a, Ob b) => r) -> Optic_ a b -> r Source Github #

Profunctor (Bidiscrete :: DiscreteK ob j k -> DiscreteK ob j k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.Bidiscrete

Methods

dimap :: forall (c0 :: DiscreteK ob j k) (a :: DiscreteK ob j k) (b :: DiscreteK ob j k) (d :: DiscreteK ob j k). (c0 ~> a) -> (b ~> d) -> Bidiscrete a b -> Bidiscrete c0 d Source Github #

(\\) :: forall (a :: DiscreteK ob j k) (b :: DiscreteK ob j k) r. ((Ob a, Ob b) => r) -> Bidiscrete a b -> r Source Github #

CategoryOf (kk j k2) => Profunctor (Co :: COK kk j k2 -> COK kk j k2 -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.Co

Methods

dimap :: forall (c :: COK kk j k2) (a :: COK kk j k2) (b :: COK kk j k2) (d :: COK kk j k2). (c ~> a) -> (b ~> d) -> Co a b -> Co c d Source Github #

(\\) :: forall (a :: COK kk j k2) (b :: COK kk j k2) r. ((Ob a, Ob b) => r) -> Co a b -> r Source Github #

CategoryOf (kk k2 j) => Profunctor (Op :: OPK kk j k2 -> OPK kk j k2 -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.Op

Methods

dimap :: forall (c :: OPK kk j k2) (a :: OPK kk j k2) (b :: OPK kk j k2) (d :: OPK kk j k2). (c ~> a) -> (b ~> d) -> Op a b -> Op c d Source Github #

(\\) :: forall (a :: OPK kk j k2) (b :: OPK kk j k2) r. ((Ob a, Ob b) => r) -> Op a b -> r Source Github #

(CategoryOf (kk j k2), Bicategory kk) => Profunctor (Strictified :: Path kk j k2 -> Path kk j k2 -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.Strictified

Methods

dimap :: forall (c :: Path kk j k2) (a :: Path kk j k2) (b :: Path kk j k2) (d :: Path kk j k2). (c ~> a) -> (b ~> d) -> Strictified a b -> Strictified c d Source Github #

(\\) :: forall (a :: Path kk j k2) (b :: Path kk j k2) r. ((Ob a, Ob b) => r) -> Strictified a b -> r Source Github #

Profunctor ((~>) :: CAT (kk i j)) => Profunctor (HomW :: HK kk i j -> HK kk i j -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.Hom

Methods

dimap :: forall (c :: HK kk i j) (a :: HK kk i j) (b :: HK kk i j) (d :: HK kk i j). (c ~> a) -> (b ~> d) -> HomW a b -> HomW c d Source Github #

(\\) :: forall (a :: HK kk i j) (b :: HK kk i j) r. ((Ob a, Ob b) => r) -> HomW a b -> r Source Github #

Profunctor ((~>) :: CAT (kk i j)) => Profunctor (Sub :: SUBCAT tag kk i j -> SUBCAT tag kk i j -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.Sub

Methods

dimap :: forall (c :: SUBCAT tag kk i j) (a :: SUBCAT tag kk i j) (b :: SUBCAT tag kk i j) (d :: SUBCAT tag kk i j). (c ~> a) -> (b ~> d) -> Sub a b -> Sub c d Source Github #

(\\) :: forall (a :: SUBCAT tag kk i j) (b :: SUBCAT tag kk i j) r. ((Ob a, Ob b) => r) -> Sub a b -> r Source Github #

(Bicategory kk, Ob s, Ob t, Ob0 kk h, Ob0 kk i, Ob0 kk j, Ob0 kk k2) => Profunctor (P kk kk (HK kk) s t :: HK kk h j +-> HK kk i k2) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.Hom

Methods

dimap :: forall (c :: HK kk i k2) (a :: HK kk i k2) (b :: HK kk h j) (d :: HK kk h j). (c ~> a) -> (b ~> d) -> P kk kk (HK kk) s t a b -> P kk kk (HK kk) s t c d Source Github #

(\\) :: forall (a :: HK kk i k2) (b :: HK kk h j) r. ((Ob a, Ob b) => r) -> P kk kk (HK kk) s t a b -> r Source Github #

(CategoryOf (jj (Fst ik) (Fst jl)), CategoryOf (kk (Snd ik) (Snd jl))) => Profunctor (Prod :: PRODK jj kk ik jl -> PRODK jj kk ik jl -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.Product

Methods

dimap :: forall (c :: PRODK jj kk ik jl) (a :: PRODK jj kk ik jl) (b :: PRODK jj kk ik jl) (d :: PRODK jj kk ik jl). (c ~> a) -> (b ~> d) -> Prod a b -> Prod c d Source Github #

(\\) :: forall (a :: PRODK jj kk ik jl) (b :: PRODK jj kk ik jl) r. ((Ob a, Ob b) => r) -> Prod a b -> r Source Github #

Natural Transformations

type (:~>) (p :: k -> k1 -> Type) (q :: k -> k1 -> Type) = forall (a :: k) (b :: k1). p a b -> q a b infixr 0 Source Github #

Natural transformation between profunctors.

Profunctor Utilities

(//) :: forall {k1} {k2} p (a :: k2) (b :: k1) r. Profunctor p => p a b -> ((Ob a, Ob b) => r) -> r infixr 0 Source Github #

Flipped version of (\\).

lmap :: forall {j} {k} p (c :: k) (a :: k) (b :: j). Profunctor p => (c ~> a) -> p a b -> p c b Source Github #

Left mapping (contravariant mapping over first argument).

rmap :: forall {j} {k} p (b :: j) (d :: j) (a :: k). Profunctor p => (b ~> d) -> p a b -> p a d Source Github #

Right mapping (covariant mapping over second argument).

Default Implementation

dimapDefault :: forall {k} p (c :: k) (a :: k) (b :: k) (d :: k). Promonad p => p c a -> p b d -> p a b -> p c d Source Github #

Default implementation of dimap for promonads using composition.

Promonads

Promonad Class

class Profunctor p => Promonad (p :: k +-> k) where Source Github #

A promonad is a category-like profunctor with identity morphisms and composition.

This is also known as a category structure, or an identity-on-objects functor.

Laws:

  • Left identity: id . f = f
  • Right identity: f . id = f
  • Associativity: (h . g) . f = h . (g . f)

Methods

id :: forall (a :: k). Ob a => p a a Source Github #

Identity morphisms.

(.) :: forall (b :: k) (c :: k) (a :: k). p b c -> p a b -> p a c infixr 9 Source Github #

Composition (note the parameter order matches function composition).

Instances

Instances details
Promonad Simplex Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Simplex

Methods

id :: forall (a :: Nat). Ob a => Simplex a a Source Github #

(.) :: forall (b :: Nat) (c :: Nat) (a :: Nat). Simplex b c -> Simplex a b -> Simplex a c Source Github #

Promonad ZX Source Github # 
Instance details

Defined in Proarrow.Category.Instance.ZX

Methods

id :: forall (a :: Nat). Ob a => ZX a a Source Github #

(.) :: forall (b :: Nat) (c :: Nat) (a :: Nat). ZX b c -> ZX a b -> ZX a c Source Github #

Promonad Booleans Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Methods

id :: forall (a :: BOOL). Ob a => Booleans a a Source Github #

(.) :: forall (b :: BOOL) (c :: BOOL) (a :: BOOL). Booleans b c -> Booleans a b -> Booleans a c Source Github #

Promonad Cat Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

id :: forall (a :: KIND). Ob a => Cat a a Source Github #

(.) :: forall (b :: KIND) (c :: KIND) (a :: KIND). Cat b c -> Cat a b -> Cat a c Source Github #

Promonad (:-) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Constraint

Methods

id :: forall (a :: CONSTRAINT). Ob a => a :- a Source Github #

(.) :: forall (b :: CONSTRAINT) (c :: CONSTRAINT) (a :: CONSTRAINT). (b :- c) -> (a :- b) -> a :- c Source Github #

Promonad GTE Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cost

Methods

id :: forall (a :: COST). Ob a => GTE a a Source Github #

(.) :: forall (b :: COST) (c :: COST) (a :: COST). GTE b c -> GTE a b -> GTE a c Source Github #

Promonad FinRel Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinRel

Methods

id :: forall (a :: FINREL). Ob a => FinRel a a Source Github #

(.) :: forall (b :: FINREL) (c :: FINREL) (a :: FINREL). FinRel b c -> FinRel a b -> FinRel a c Source Github #

Promonad FinSet Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

Methods

id :: forall (a :: FINSET). Ob a => FinSet a a Source Github #

(.) :: forall (b :: FINSET) (c :: FINSET) (a :: FINSET). FinSet b c -> FinSet a b -> FinSet a c Source Github #

Promonad Linear Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Linear

Methods

id :: forall (a :: LINEAR). Ob a => Linear a a Source Github #

(.) :: forall (b :: LINEAR) (c :: LINEAR) (a :: LINEAR). Linear b c -> Linear a b -> Linear a c Source Github #

Promonad Pointed Source Github # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Methods

id :: forall (a :: POINTED). Ob a => Pointed a a Source Github #

(.) :: forall (b :: POINTED) (c :: POINTED) (a :: POINTED). Pointed b c -> Pointed a b -> Pointed a c Source Github #

Promonad Zero Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Zero

Methods

id :: forall (a :: VOID). Ob a => Zero a a Source Github #

(.) :: forall (b :: VOID) (c :: VOID) (a :: VOID). Zero b c -> Zero a b -> Zero a c Source Github #

Promonad Dot Source Github # 
Instance details

Defined in Proarrow.Tools.Diagrams.Dot

Methods

id :: forall (a :: DOT). Ob a => Dot a a Source Github #

(.) :: forall (b :: DOT) (c :: DOT) (a :: DOT). Dot b c -> Dot a b -> Dot a c Source Github #

Promonad Unit Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Unit

Methods

id :: forall (a :: ()). Ob a => Unit a a Source Github #

(.) :: forall (b :: ()) (c :: ()) (a :: ()). Unit b c -> Unit a b -> Unit a c Source Github #

Promonad SymRefl Source Github # 
Instance details

Defined in Proarrow.Tools.Diagrams.Dot

Methods

id :: forall (a :: Symbol). Ob a => SymRefl a a Source Github #

(.) :: forall (b :: Symbol) (c :: Symbol) (a :: Symbol). SymRefl b c -> SymRefl a b -> SymRefl a c Source Github #

Monad m => Promonad (Kleisli m :: Type -> Type -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Arrow

Methods

id :: Ob a => Kleisli m a a Source Github #

(.) :: Kleisli m b c -> Kleisli m a b -> Kleisli m a c Source Github #

Comonoid w => Promonad (ComonoidAsCat w :: Type -> Type -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Nat

Methods

id :: Ob a => ComonoidAsCat w a a Source Github #

(.) :: ComonoidAsCat w b c -> ComonoidAsCat w a b -> ComonoidAsCat w a c Source Github #

Arrow arr => Promonad (Arr arr :: Type -> Type -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Arrow

Methods

id :: Ob a => Arr arr a a Source Github #

(.) :: Arr arr b c -> Arr arr a b -> Arr arr a c Source Github #

CategoryOf k => Promonad (Id :: k -> k -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Identity

Methods

id :: forall (a :: k). Ob a => Id a a Source Github #

(.) :: forall (b :: k) (c :: k) (a :: k). Id b c -> Id a b -> Id a c Source Github #

Promonad (->) Source Github # 
Instance details

Defined in Proarrow.Core

Methods

id :: Ob a => a -> a Source Github #

(.) :: (b -> c) -> (a -> b) -> a -> c Source Github #

Promonad p => Promonad (Fix p :: k -> k -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Fix

Methods

id :: forall (a :: k). Ob a => Fix p a a Source Github #

(.) :: forall (b :: k) (c :: k) (a :: k). Fix p b c -> Fix p a b -> Fix p a c Source Github #

Profunctor p => Promonad (FreePromonad p :: k -> k -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Free

Methods

id :: forall (a :: k). Ob a => FreePromonad p a a Source Github #

(.) :: forall (b :: k) (c :: k) (a :: k). FreePromonad p b c -> FreePromonad p a b -> FreePromonad p a c Source Github #

CategoryOf k => Promonad (TerminalProfunctor :: k -> k -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Terminal

Methods

id :: forall (a :: k). Ob a => TerminalProfunctor a a Source Github #

(.) :: forall (b :: k) (c :: k) (a :: k). TerminalProfunctor b c -> TerminalProfunctor a b -> TerminalProfunctor a c Source Github #

CategoryOf k => Promonad (Cont r :: k -> k -> Type) Source Github # 
Instance details

Defined in Proarrow.Promonad.Cont

Methods

id :: forall (a :: k). Ob a => Cont r a a Source Github #

(.) :: forall (b :: k) (c :: k) (a :: k). Cont r b c -> Cont r a b -> Cont r a c Source Github #

(Comonoid r, Monoidal k) => Promonad (Reader ('OP r) :: k -> k -> Type) Source Github # 
Instance details

Defined in Proarrow.Promonad.Reader

Methods

id :: forall (a :: k). Ob a => Reader ('OP r) a a Source Github #

(.) :: forall (b :: k) (c :: k) (a :: k). Reader ('OP r) b c -> Reader ('OP r) a b -> Reader ('OP r) a c Source Github #

(Monoidal k, Ob s) => Promonad (State s :: k -> k -> Type) Source Github # 
Instance details

Defined in Proarrow.Promonad.State

Methods

id :: forall (a :: k). Ob a => State s a a Source Github #

(.) :: forall (b :: k) (c :: k) (a :: k). State s b c -> State s a b -> State s a c Source Github #

(Monoid w, Monoidal k) => Promonad (Writer w :: k -> k -> Type) Source Github # 
Instance details

Defined in Proarrow.Promonad.Writer

Methods

id :: forall (a :: k). Ob a => Writer w a a Source Github #

(.) :: forall (b :: k) (c :: k) (a :: k). Writer w b c -> Writer w a b -> Writer w a c Source Github #

Monad m => Promonad (Star (Prelude m) :: Type -> Type -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Star

Methods

id :: Ob a => Star (Prelude m) a a Source Github #

(.) :: Star (Prelude m) b c -> Star (Prelude m) a b -> Star (Prelude m) a c Source Github #

(Monoid c, CategoryOf k) => Promonad (HaskValue c :: k -> k -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.HaskValue

Methods

id :: forall (a :: k). Ob a => HaskValue c a a Source Github #

(.) :: forall (b :: k) (c0 :: k) (a :: k). HaskValue c b c0 -> HaskValue c a b -> HaskValue c a c0 Source Github #

Promonad p => Promonad (Wrapped p :: k -> k -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Wrapped

Methods

id :: forall (a :: k). Ob a => Wrapped p a a Source Github #

(.) :: forall (b :: k) (c :: k) (a :: k). Wrapped p b c -> Wrapped p a b -> Wrapped p a c Source Github #

Proadjunction p q => Promonad (q :.: p :: k -> k -> Type) Source Github # 
Instance details

Defined in Proarrow.Adjunction

Methods

id :: forall (a :: k). Ob a => (q :.: p) a a Source Github #

(.) :: forall (b :: k) (c :: k) (a :: k). (q :.: p) b c -> (q :.: p) a b -> (q :.: p) a c Source Github #

(p ~ j, Profunctor p) => Promonad (Ran ('OP j) p :: k -> k -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Ran

Methods

id :: forall (a :: k). Ob a => Ran ('OP j) p a a Source Github #

(.) :: forall (b :: k) (c :: k) (a :: k). Ran ('OP j) p b c -> Ran ('OP j) p a b -> Ran ('OP j) p a c Source Github #

(p ~ j, Profunctor p) => Promonad (Rift ('OP j) p :: k -> k -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Rift

Methods

id :: forall (a :: k). Ob a => Rift ('OP j) p a a Source Github #

(.) :: forall (b :: k) (c :: k) (a :: k). Rift ('OP j) p b c -> Rift ('OP j) p a b -> Rift ('OP j) p a c Source Github #

HasPushouts k => Promonad (Cospan :: COSPAN k -> COSPAN k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

Methods

id :: forall (a :: COSPAN k). Ob a => Cospan a a Source Github #

(.) :: forall (b :: COSPAN k) (c :: COSPAN k) (a :: COSPAN k). Cospan b c -> Cospan a b -> Cospan a c Source Github #

Promonad (Codiscrete :: CODISCRETE k -> CODISCRETE k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Discrete

Methods

id :: forall (a :: CODISCRETE k). Ob a => Codiscrete a a Source Github #

(.) :: forall (b :: CODISCRETE k) (c :: CODISCRETE k) (a :: CODISCRETE k). Codiscrete b c -> Codiscrete a b -> Codiscrete a c Source Github #

Promonad (Discrete :: DISCRETE k -> DISCRETE k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Discrete

Methods

id :: forall (a :: DISCRETE k). Ob a => Discrete a a Source Github #

(.) :: forall (b :: DISCRETE k) (c :: DISCRETE k) (a :: DISCRETE k). Discrete b c -> Discrete a b -> Discrete a c Source Github #

CategoryOf k => Promonad (Fam :: FAM k -> FAM k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Fam

Methods

id :: forall (a :: FAM k). Ob a => Fam a a Source Github #

(.) :: forall (b :: FAM k) (c :: FAM k) (a :: FAM k). Fam b c -> Fam a b -> Fam a c Source Github #

Promonad (LTE :: FIN n -> FIN n -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Fin

Methods

id :: forall (a :: FIN n). Ob a => LTE a a Source Github #

(.) :: forall (b :: FIN n) (c :: FIN n) (a :: FIN n). LTE b c -> LTE a b -> LTE a c Source Github #

TracedMonoidal k => Promonad (IntConstruction :: INT k -> INT k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.IntConstruction

Methods

id :: forall (a :: INT k). Ob a => IntConstruction a a Source Github #

(.) :: forall (b :: INT k) (c :: INT k) (a :: INT k). IntConstruction b c -> IntConstruction a b -> IntConstruction a c Source Github #

Num a => Promonad (Mat :: MatK a -> MatK a -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Mat

Methods

id :: forall (a0 :: MatK a). Ob a0 => Mat a0 a0 Source Github #

(.) :: forall (b :: MatK a) (c :: MatK a) (a0 :: MatK a). Mat b c -> Mat a0 b -> Mat a0 c Source Github #

HasPullbacks k => Promonad (Span :: SPAN k -> SPAN k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Span

Methods

id :: forall (a :: SPAN k). Ob a => Span a a Source Github #

(.) :: forall (b :: SPAN k) (c :: SPAN k) (a :: SPAN k). Span b c -> Span a b -> Span a c Source Github #

Monoidal k => Promonad (Strictified :: [k] -> [k] -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Monoidal.Strictified

Methods

id :: forall (a :: [k]). Ob a => Strictified a a Source Github #

(.) :: forall (b :: [k]) (c :: [k]) (a :: [k]). Strictified b c -> Strictified a b -> Strictified a c Source Github #

Promonad p => Promonad (Rev p :: REV j -> REV j -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Monoidal.Rev

Methods

id :: forall (a :: REV j). Ob a => Rev p a a Source Github #

(.) :: forall (b :: REV j) (c :: REV j) (a :: REV j). Rev p b c -> Rev p a b -> Rev p a c Source Github #

Promonad c => Promonad (Op c :: OPPOSITE j -> OPPOSITE j -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Opposite

Methods

id :: forall (a :: OPPOSITE j). Ob a => Op c a a Source Github #

(.) :: forall (b :: OPPOSITE j) (c0 :: OPPOSITE j) (a :: OPPOSITE j). Op c b c0 -> Op c a b -> Op c a c0 Source Github #

Promonad p => Promonad (Coprod p :: COPROD j -> COPROD j -> Type) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Methods

id :: forall (a :: COPROD j). Ob a => Coprod p a a Source Github #

(.) :: forall (b :: COPROD j) (c :: COPROD j) (a :: COPROD j). Coprod p b c -> Coprod p a b -> Coprod p a c Source Github #

Promonad p => Promonad (Prod p :: PROD j -> PROD j -> Type) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryProduct

Methods

id :: forall (a :: PROD j). Ob a => Prod p a a Source Github #

(.) :: forall (b :: PROD j) (c :: PROD j) (a :: PROD j). Prod p b c -> Prod p a b -> Prod p a c Source Github #

Promonad p => Promonad (List p :: LIST j -> LIST j -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.List

Methods

id :: forall (a :: LIST j). Ob a => List p a a Source Github #

(.) :: forall (b :: LIST j) (c :: LIST j) (a :: LIST j). List p b c -> List p a b -> List p a c Source Github #

Promonad (Adj :: ADJK a b -> ADJK a b -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.Adj

Methods

id :: forall (a0 :: ADJK a b). Ob a0 => Adj a0 a0 Source Github #

(.) :: forall (b0 :: ADJK a b) (c :: ADJK a b) (a0 :: ADJK a b). Adj b0 c -> Adj a0 b0 -> Adj a0 c Source Github #

Promonad (Prof :: PROFK j k -> PROFK j k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.Prof

Methods

id :: forall (a :: PROFK j k). Ob a => Prof a a Source Github #

(.) :: forall (b :: PROFK j k) (c :: PROFK j k) (a :: PROFK j k). Prof b c -> Prof a b -> Prof a c Source Github #

Promonad p => Promonad (Kleisli :: KLEISLI p -> KLEISLI p -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Kleisli

Methods

id :: forall (a :: KLEISLI p). Ob a => Kleisli a a Source Github #

(.) :: forall (b :: KLEISLI p) (c :: KLEISLI p) (a :: KLEISLI p). Kleisli b c -> Kleisli a b -> Kleisli a c Source Github #

Promonad (Nat' :: (j .-> k) -> (j .-> k) -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Nat

Methods

id :: forall (a :: j .-> k). Ob a => Nat' a a Source Github #

(.) :: forall (b :: j .-> k) (c :: j .-> k) (a :: j .-> k). Nat' b c -> Nat' a b -> Nat' a c Source Github #

Promonad (Terminal :: Unit '() '() -> Unit '() '() -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.Terminal

Methods

id :: forall (a :: Unit '() '()). Ob a => Terminal a a Source Github #

(.) :: forall (b :: Unit '() '()) (c :: Unit '() '()) (a :: Unit '() '()). Terminal b c -> Terminal a b -> Terminal a c Source Github #

Promonad (Prof :: (j +-> k) -> (j +-> k) -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Prof

Methods

id :: forall (a :: j +-> k). Ob a => Prof a a Source Github #

(.) :: forall (b :: j +-> k) (c :: j +-> k) (a :: j +-> k). Prof b c -> Prof a b -> Prof a c Source Github #

Promonad (Nat :: (j -> Type) -> (j -> Type) -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Nat

Methods

id :: forall (a :: j -> Type). Ob a => Nat a a Source Github #

(.) :: forall (b :: j -> Type) (c :: j -> Type) (a :: j -> Type). Nat b c -> Nat a b -> Nat a c Source Github #

Promonad (Nat :: (k1 -> k2 -> k3 -> k4 -> Type) -> (k1 -> k2 -> k3 -> k4 -> Type) -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Nat

Methods

id :: forall (a :: k1 -> k2 -> k3 -> k4 -> Type). Ob a => Nat a a Source Github #

(.) :: forall (b :: k1 -> k2 -> k3 -> k4 -> Type) (c :: k1 -> k2 -> k3 -> k4 -> Type) (a :: k1 -> k2 -> k3 -> k4 -> Type). Nat b c -> Nat a b -> Nat a c Source Github #

Promonad (Nat :: (k1 -> k2 -> k3 -> Type) -> (k1 -> k2 -> k3 -> Type) -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Nat

Methods

id :: forall (a :: k1 -> k2 -> k3 -> Type). Ob a => Nat a a Source Github #

(.) :: forall (b :: k1 -> k2 -> k3 -> Type) (c :: k1 -> k2 -> k3 -> Type) (a :: k1 -> k2 -> k3 -> Type). Nat b c -> Nat a b -> Nat a c Source Github #

Promonad p => Promonad (Sub p :: SUBCAT ob -> SUBCAT ob -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Sub

Methods

id :: forall (a :: SUBCAT ob). Ob a => Sub p a a Source Github #

(.) :: forall (b :: SUBCAT ob) (c :: SUBCAT ob) (a :: SUBCAT ob). Sub p b c -> Sub p a b -> Sub p a c Source Github #

Promonad (Costar (Coyoneda :: (j +-> k) -> k -> j -> Type) :: (j +-> k) -> (k -> j -> Type) -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Coyoneda

Methods

id :: forall (a :: j +-> k). Ob a => Costar (Coyoneda :: (j +-> k) -> k -> j -> Type) a a Source Github #

(.) :: forall (b :: j +-> k) (c :: j +-> k) (a :: j +-> k). Costar (Coyoneda :: (j +-> k) -> k -> j -> Type) b c -> Costar (Coyoneda :: (j +-> k) -> k -> j -> Type) a b -> Costar (Coyoneda :: (j +-> k) -> k -> j -> Type) a c Source Github #

Profunctor p => Promonad (Costar ((:*:) p) :: (j +-> k) -> (k -> j -> Type) -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Costar

Methods

id :: forall (a :: j +-> k). Ob a => Costar ((:*:) p) a a Source Github #

(.) :: forall (b :: j +-> k) (c :: j +-> k) (a :: j +-> k). Costar ((:*:) p) b c -> Costar ((:*:) p) a b -> Costar ((:*:) p) a c Source Github #

Promonad (Costar (Yoneda :: (j +-> k) -> k -> j -> Type) :: (j +-> k) -> (k -> j -> Type) -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Yoneda

Methods

id :: forall (a :: j +-> k). Ob a => Costar (Yoneda :: (j +-> k) -> k -> j -> Type) a a Source Github #

(.) :: forall (b :: j +-> k) (c :: j +-> k) (a :: j +-> k). Costar (Yoneda :: (j +-> k) -> k -> j -> Type) b c -> Costar (Yoneda :: (j +-> k) -> k -> j -> Type) a b -> Costar (Yoneda :: (j +-> k) -> k -> j -> Type) a c Source Github #

Procomonad j => Promonad (Star (Ran ('OP j) :: (i +-> k) -> k -> i -> Type) :: (k -> i -> Type) -> (i +-> k) -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Ran

Methods

id :: forall (a :: k -> i -> Type). Ob a => Star (Ran ('OP j) :: (i +-> k) -> k -> i -> Type) a a Source Github #

(.) :: forall (b :: k -> i -> Type) (c :: k -> i -> Type) (a :: k -> i -> Type). Star (Ran ('OP j) :: (i +-> k) -> k -> i -> Type) b c -> Star (Ran ('OP j) :: (i +-> k) -> k -> i -> Type) a b -> Star (Ran ('OP j) :: (i +-> k) -> k -> i -> Type) a c Source Github #

Profunctor p => Promonad (Star ((:+:) p) :: (k -> j -> Type) -> (j +-> k) -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Star

Methods

id :: forall (a :: k -> j -> Type). Ob a => Star ((:+:) p) a a Source Github #

(.) :: forall (b :: k -> j -> Type) (c :: k -> j -> Type) (a :: k -> j -> Type). Star ((:+:) p) b c -> Star ((:+:) p) a b -> Star ((:+:) p) a c Source Github #

Promonad (Star (Coyoneda :: (j +-> k) -> k -> j -> Type) :: (k -> j -> Type) -> (j +-> k) -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Coyoneda

Methods

id :: forall (a :: k -> j -> Type). Ob a => Star (Coyoneda :: (j +-> k) -> k -> j -> Type) a a Source Github #

(.) :: forall (b :: k -> j -> Type) (c :: k -> j -> Type) (a :: k -> j -> Type). Star (Coyoneda :: (j +-> k) -> k -> j -> Type) b c -> Star (Coyoneda :: (j +-> k) -> k -> j -> Type) a b -> Star (Coyoneda :: (j +-> k) -> k -> j -> Type) a c Source Github #

Promonad (Star (Yoneda :: (j +-> k) -> k -> j -> Type) :: (k -> j -> Type) -> (j +-> k) -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Yoneda

Methods

id :: forall (a :: k -> j -> Type). Ob a => Star (Yoneda :: (j +-> k) -> k -> j -> Type) a a Source Github #

(.) :: forall (b :: k -> j -> Type) (c :: k -> j -> Type) (a :: k -> j -> Type). Star (Yoneda :: (j +-> k) -> k -> j -> Type) b c -> Star (Yoneda :: (j +-> k) -> k -> j -> Type) a b -> Star (Yoneda :: (j +-> k) -> k -> j -> Type) a c Source Github #

Procomonad j2 => Promonad (Star (Rift ('OP j2) :: (j1 +-> k) -> k -> j1 -> Type) :: (k -> j1 -> Type) -> (j1 +-> k) -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Rift

Methods

id :: forall (a :: k -> j1 -> Type). Ob a => Star (Rift ('OP j2) :: (j1 +-> k) -> k -> j1 -> Type) a a Source Github #

(.) :: forall (b :: k -> j1 -> Type) (c :: k -> j1 -> Type) (a :: k -> j1 -> Type). Star (Rift ('OP j2) :: (j1 +-> k) -> k -> j1 -> Type) b c -> Star (Rift ('OP j2) :: (j1 +-> k) -> k -> j1 -> Type) a b -> Star (Rift ('OP j2) :: (j1 +-> k) -> k -> j1 -> Type) a c Source Github #

(Applicative f, Promonad p) => Promonad (Ap p :: AP f k -> AP f k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Ap

Methods

id :: forall (a :: AP f k). Ob a => Ap p a a Source Github #

(.) :: forall (b :: AP f k) (c :: AP f k) (a :: AP f k). Ap p b c -> Ap p a b -> Ap p a c Source Github #

Monoid m => Promonad (Mon :: MONOIDK m -> MONOIDK m -> Type) Source Github # 
Instance details

Defined in Proarrow.Monoid

Methods

id :: forall (a :: MONOIDK m). Ob a => Mon a a Source Github #

(.) :: forall (b :: MONOIDK m) (c :: MONOIDK m) (a :: MONOIDK m). Mon b c -> Mon a b -> Mon a c Source Github #

(Promonad p, Promonad q) => Promonad (p :++: q :: COPRODUCT j1 j2 -> COPRODUCT j1 j2 -> Type) Source Github #

The coproduct of two promonads.

Instance details

Defined in Proarrow.Category.Instance.Coproduct

Methods

id :: forall (a :: COPRODUCT j1 j2). Ob a => (p :++: q) a a Source Github #

(.) :: forall (b :: COPRODUCT j1 j2) (c :: COPRODUCT j1 j2) (a :: COPRODUCT j1 j2). (p :++: q) b c -> (p :++: q) a b -> (p :++: q) a c Source Github #

(Promonad p, Promonad q) => Promonad (p :**: q :: (j1, j2) -> (j1, j2) -> Type) Source Github #

The product promonad of promonads p and q.

Instance details

Defined in Proarrow.Category.Instance.Product

Methods

id :: forall (a :: (j1, j2)). Ob a => (p :**: q) a a Source Github #

(.) :: forall (b :: (j1, j2)) (c :: (j1, j2)) (a :: (j1, j2)). (p :**: q) b c -> (p :**: q) a b -> (p :**: q) a c Source Github #

(CategoryOf k, Ob i, Ob j) => Promonad (Category :: PLAINK k i j -> PLAINK k i j -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.CategoryAsBi

Methods

id :: forall (a :: PLAINK k i j). Ob a => Category a a Source Github #

(.) :: forall (b :: PLAINK k i j) (c :: PLAINK k i j) (a :: PLAINK k i j). Category b c -> Category a b -> Category a c Source Github #

CategoryOf k => Promonad (Mon2 :: MonK k i j -> MonK k i j -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.MonoidalAsBi

Methods

id :: forall (a :: MonK k i j). Ob a => Mon2 a a Source Github #

(.) :: forall (b :: MonK k i j) (c :: MonK k i j) (a :: MonK k i j). Mon2 b c -> Mon2 a b -> Mon2 a c Source Github #

SelfAction k => Promonad (StT :: STT' k i j -> STT' k i j -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Equipment.Stateful

Methods

id :: forall (a :: STT' k i j). Ob a => StT a a Source Github #

(.) :: forall (b :: STT' k i j) (c :: STT' k i j) (a :: STT' k i j). StT b c -> StT a b -> StT a c Source Github #

Profunctor p => Promonad (Collage :: COLLAGE p -> COLLAGE p -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Collage

Methods

id :: forall (a :: COLLAGE p). Ob a => Collage a a Source Github #

(.) :: forall (b :: COLLAGE p) (c :: COLLAGE p) (a :: COLLAGE p). Collage b c -> Collage a b -> Collage a c Source Github #

Adjunction adj => Promonad (Duploid :: DUPLOID adj -> DUPLOID adj -> Type) Source Github #

ATTENTION: a duploid is not associative, so not really a promonad/category!

Instance details

Defined in Proarrow.Category.Instance.Duploid

Methods

id :: forall (a :: DUPLOID adj). Ob a => Duploid a a Source Github #

(.) :: forall (b :: DUPLOID adj) (c :: DUPLOID adj) (a :: DUPLOID adj). Duploid b c -> Duploid a b -> Duploid a c Source Github #

Ok cs p => Promonad (Free :: FREE cs p -> FREE cs p -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Free

Methods

id :: forall (a :: FREE cs p). Ob a => Free a a Source Github #

(.) :: forall (b :: FREE cs p) (c :: FREE cs p) (a :: FREE cs p). Free b c -> Free a b -> Free a c Source Github #

(Bicategory kk, Ob0 kk k) => Promonad (Endo :: ENDO kk k -> ENDO kk k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Monoidal.Endo

Methods

id :: forall (a :: ENDO kk k). Ob a => Endo a a Source Github #

(.) :: forall (b :: ENDO kk k) (c :: ENDO kk k) (a :: ENDO kk k). Endo b c -> Endo a b -> Endo a c Source Github #

(CategoryOf j, CategoryOf k) => Promonad (Optic_ :: OPTIC j k c -> OPTIC j k c -> Type) Source Github # 
Instance details

Defined in Proarrow.Optic

Methods

id :: forall (a :: OPTIC j k c). Ob a => Optic_ a a Source Github #

(.) :: forall (b :: OPTIC j k c) (c0 :: OPTIC j k c) (a :: OPTIC j k c). Optic_ b c0 -> Optic_ a b -> Optic_ a c0 Source Github #

Promonad (Bidiscrete :: DiscreteK ob j k -> DiscreteK ob j k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.Bidiscrete

Methods

id :: forall (a :: DiscreteK ob j k). Ob a => Bidiscrete a a Source Github #

(.) :: forall (b :: DiscreteK ob j k) (c0 :: DiscreteK ob j k) (a :: DiscreteK ob j k). Bidiscrete b c0 -> Bidiscrete a b -> Bidiscrete a c0 Source Github #

CategoryOf (kk j k2) => Promonad (Co :: COK kk j k2 -> COK kk j k2 -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.Co

Methods

id :: forall (a :: COK kk j k2). Ob a => Co a a Source Github #

(.) :: forall (b :: COK kk j k2) (c :: COK kk j k2) (a :: COK kk j k2). Co b c -> Co a b -> Co a c Source Github #

CategoryOf (kk k2 j) => Promonad (Op :: OPK kk j k2 -> OPK kk j k2 -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.Op

Methods

id :: forall (a :: OPK kk j k2). Ob a => Op a a Source Github #

(.) :: forall (b :: OPK kk j k2) (c :: OPK kk j k2) (a :: OPK kk j k2). Op b c -> Op a b -> Op a c Source Github #

(CategoryOf (kk j k2), Bicategory kk) => Promonad (Strictified :: Path kk j k2 -> Path kk j k2 -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.Strictified

Methods

id :: forall (a :: Path kk j k2). Ob a => Strictified a a Source Github #

(.) :: forall (b :: Path kk j k2) (c :: Path kk j k2) (a :: Path kk j k2). Strictified b c -> Strictified a b -> Strictified a c Source Github #

Promonad ((~>) :: CAT (kk i j)) => Promonad (HomW :: HK kk i j -> HK kk i j -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.Hom

Methods

id :: forall (a :: HK kk i j). Ob a => HomW a a Source Github #

(.) :: forall (b :: HK kk i j) (c :: HK kk i j) (a :: HK kk i j). HomW b c -> HomW a b -> HomW a c Source Github #

Promonad ((~>) :: CAT (kk i j)) => Promonad (Sub :: SUBCAT tag kk i j -> SUBCAT tag kk i j -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.Sub

Methods

id :: forall (a :: SUBCAT tag kk i j). Ob a => Sub a a Source Github #

(.) :: forall (b :: SUBCAT tag kk i j) (c :: SUBCAT tag kk i j) (a :: SUBCAT tag kk i j). Sub b c -> Sub a b -> Sub a c Source Github #

(CategoryOf (jj (Fst ik) (Fst jl)), CategoryOf (kk (Snd ik) (Snd jl))) => Promonad (Prod :: PRODK jj kk ik jl -> PRODK jj kk ik jl -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.Product

Methods

id :: forall (a :: PRODK jj kk ik jl). Ob a => Prod a a Source Github #

(.) :: forall (b :: PRODK jj kk ik jl) (c :: PRODK jj kk ik jl) (a :: PRODK jj kk ik jl). Prod b c -> Prod a b -> Prod a c Source Github #

Promonad Utilities

arr :: forall {k} p (a :: k) (b :: k). Promonad p => (a ~> b) -> p a b Source Github #

Lifts morphisms from the base category into the promonad.

Object Identities

type Obj (a :: k) = a ~> a Source Github #

Type of identity morphism for object a.

obj :: forall {k} (a :: k). (CategoryOf k, Ob a) => Obj a Source Github #

The identity morphism for a given object. Compared to id this makes the kind argument implicit, allowing to write obj @a instead of id @k @a.

src :: forall {j} {k} (a :: k) (b :: j) p. Profunctor p => p a b -> Obj a Source Github #

Extract source identity morphism from a profunctor heteromorphism.

tgt :: forall {k1} {k2} (a :: k2) (b :: k1) p. Profunctor p => p a b -> Obj b Source Github #

Extract target identity morphism from a profunctor heteromorphism.

Type Family Utilities

Kind Unwrapping

type family UN (w :: j -> k) (wa :: k) :: j Source Github #

A helper type family to unwrap a wrapped kind. This is needed because the field selector functions of newtypes have to be lower case and therefore cannot be used at the type level.

Instances

Instances details
type UN 'FR ('FR n :: FINREL) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinRel

type UN 'FR ('FR n :: FINREL) = n
type UN 'FS ('FS n :: FINSET) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.FinSet

type UN 'FS ('FS n :: FINSET) = n
type UN 'K ('K k :: KIND) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cat

type UN 'K ('K k :: KIND) = k
type UN 'CNSTRNT ('CNSTRNT a :: CONSTRAINT) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Constraint

type UN 'CNSTRNT ('CNSTRNT a :: CONSTRAINT) = a
type UN 'L ('L a :: LINEAR) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Linear

type UN 'L ('L a :: LINEAR) = a
type UN 'P ('P a :: POINTED) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

type UN 'P ('P a :: POINTED) = a
type UN ('M :: Nat -> MatK a) ('M n :: MatK a) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Mat

type UN ('M :: Nat -> MatK a) ('M n :: MatK a) = n
type UN ('CS :: j -> COSPAN j) ('CS k :: COSPAN j) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Cospan

type UN ('CS :: j -> COSPAN j) ('CS k :: COSPAN j) = k
type UN ('CD :: j -> CODISCRETE j) ('CD a :: CODISCRETE j) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Discrete

type UN ('CD :: j -> CODISCRETE j) ('CD a :: CODISCRETE j) = a
type UN ('D :: j -> DISCRETE j) ('D a :: DISCRETE j) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Discrete

type UN ('D :: j -> DISCRETE j) ('D a :: DISCRETE j) = a
type UN ('SP :: j -> SPAN j) ('SP k :: SPAN j) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Span

type UN ('SP :: j -> SPAN j) ('SP k :: SPAN j) = k
type UN ('R :: j -> REV j) ('R a :: REV j) Source Github # 
Instance details

Defined in Proarrow.Category.Monoidal.Rev

type UN ('R :: j -> REV j) ('R a :: REV j) = a
type UN ('OP :: j -> OPPOSITE j) ('OP k :: OPPOSITE j) Source Github # 
Instance details

Defined in Proarrow.Category.Opposite

type UN ('OP :: j -> OPPOSITE j) ('OP k :: OPPOSITE j) = k
type UN ('COPR :: j -> COPROD j) ('COPR k :: COPROD j) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

type UN ('COPR :: j -> COPROD j) ('COPR k :: COPROD j) = k
type UN ('PR :: j -> PROD j) ('PR k :: PROD j) Source Github # 
Instance details

Defined in Proarrow.Object.BinaryProduct

type UN ('PR :: j -> PROD j) ('PR k :: PROD j) = k
type UN ('F :: j -> FK j) ('F a :: FK j) Source Github # 
Instance details

Defined in Proarrow.Tools.CCC

type UN ('F :: j -> FK j) ('F a :: FK j) = a
type UN ('A :: j -> AP f j) ('A k :: AP f j) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Ap

type UN ('A :: j -> AP f j) ('A k :: AP f j) = k
type UN ('KL :: j -> KLEISLI p) ('KL k :: KLEISLI p) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Kleisli

type UN ('KL :: j -> KLEISLI p) ('KL k :: KLEISLI p) = k
type UN ('SUB :: j -> SUBCAT ob) ('SUB k :: SUBCAT ob) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Sub

type UN ('SUB :: j -> SUBCAT ob) ('SUB k :: SUBCAT ob) = k
type UN ('EMB :: j -> FREE cs p) ('EMB a :: FREE cs p) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Free

type UN ('EMB :: j -> FREE cs p) ('EMB a :: FREE cs p) = a
type UN ('MK :: j1 -> MonK j1 i j2) ('MK k :: MonK j1 i j2) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.MonoidalAsBi

type UN ('MK :: j1 -> MonK j1 i j2) ('MK k :: MonK j1 i j2) = k
type UN 'D ('D ss :: DOT) Source Github # 
Instance details

Defined in Proarrow.Tools.Diagrams.Dot

type UN 'D ('D ss :: DOT) = ss
type UN ('L :: [k] -> LIST k) ('L as :: LIST k) Source Github # 
Instance details

Defined in Proarrow.Profunctor.List

type UN ('L :: [k] -> LIST k) ('L as :: LIST k) = as
type UN ('DEP_ :: (x +-> k) -> FAM k) ('DEP_ dx :: FAM k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Fam

type UN ('DEP_ :: (x +-> k) -> FAM k) ('DEP_ dx :: FAM k) = dx
type UN ('PK :: (j +-> k) -> PROFK j k) ('PK p :: PROFK j k) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.Prof

type UN ('PK :: (j +-> k) -> PROFK j k) ('PK p :: PROFK j k) = p
type UN ('NT :: (j -> k) -> j .-> k) ('NT f :: j .-> k) Source Github # 
Instance details

Defined in Proarrow.Category.Instance.Nat

type UN ('NT :: (j -> k) -> j .-> k) ('NT f :: j .-> k) = f
type UN ('ST :: (k +-> k) -> STT' k i j) ('ST p :: STT' k i j) Source Github # 
Instance details

Defined in Proarrow.Category.Equipment.Stateful

type UN ('ST :: (k +-> k) -> STT' k i j) ('ST p :: STT' k i j) = p
type UN ('E :: kk k k -> ENDO kk k) ('E p :: ENDO kk k) Source Github # 
Instance details

Defined in Proarrow.Category.Monoidal.Endo

type UN ('E :: kk k k -> ENDO kk k) ('E p :: ENDO kk k) = p
type UN ('CO :: kk j k2 -> COK kk j k2) ('CO k3 :: COK kk j k2) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.Co

type UN ('CO :: kk j k2 -> COK kk j k2) ('CO k3 :: COK kk j k2) = k3
type UN ('OP :: kk k2 j -> OPK kk j k2) ('OP k3 :: OPK kk j k2) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.Op

type UN ('OP :: kk k2 j -> OPK kk j k2) ('OP k3 :: OPK kk j k2) = k3
type UN ('HomK :: kk i j -> HK kk i j) ('HomK k3 :: HK kk i j) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.Hom

type UN ('HomK :: kk i j -> HK kk i j) ('HomK k3 :: HK kk i j) = k3
type UN ('SUB :: kk i j -> SUBCAT tag kk i j) ('SUB p :: SUBCAT tag kk i j) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.Sub

type UN ('SUB :: kk i j -> SUBCAT tag kk i j) ('SUB p :: SUBCAT tag kk i j) = p
type UN ('AK :: Path ABK i j -> ADJK i j) ('AK ps :: ADJK i j) Source Github # 
Instance details

Defined in Proarrow.Category.Bicategory.Adj

type UN ('AK :: Path ABK i j -> ADJK i j) ('AK ps :: ADJK i j) = ps

type Is (w :: j -> k) (a :: k) = a ~ w (UN w a) Source Github #

Is w a checks that the kind a is a kind wrapped by w.