proarrow-0: Category theory with a central role for profunctors
Safe HaskellNone
LanguageHaskell2010

Proarrow.Core

Synopsis

Documentation

type PRO j k = j -> k -> Type Source Comments #

type (+->) j k = PRO k j infixr 0 Source Comments #

type CAT k = PRO k k Source Comments #

type BI k = (k, k) -> k Source Comments #

type OB k = k -> Constraint Source Comments #

class Any (a :: k) Source Comments #

Instances

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

Defined in Proarrow.Core

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

Associated Types

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

type Ob (a :: k) Source Comments #

type Ob (a :: k) = Any a

Instances

Instances details
CategoryOf BOOL Source Comments #

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 Comments #

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 Comments # 
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 LINEAR Source Comments #

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 Comments # 
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 Nat Source Comments # 
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 VOID Source Comments #

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 () Source Comments #

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 Type Source Comments # 
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
CategoryOf (FIN n) Source Comments # 
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
CategoryOf k => CategoryOf (LIST k) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.List

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.List

type (~>) = List :: LIST k -> LIST k -> Type
Num a => CategoryOf (MatK a) Source Comments # 
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
PreorderOf k => CategoryOf (POCATK k) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.PreorderAsCategory

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.PreorderAsCategory

type (~>) = PoAsCat :: POCATK k -> POCATK k -> Type
CategoryOf k => CategoryOf (REV k) Source Comments # 
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 Comments #

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)
BiCCC k => CategoryOf (FK k) Source Comments # 
Instance details

Defined in Proarrow.Helper.CCC

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Helper.CCC

type (~>) = FreeCCC :: FK k -> FK k -> Type
CategoryOf k => CategoryOf (COPROD k) Source Comments # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

type (~>) = Coprod ((~>) :: CAT k)
CategoryOf k => CategoryOf (PROD k) Source Comments # 
Instance details

Defined in Proarrow.Object.BinaryProduct

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Object.BinaryProduct

type (~>) = Prod ((~>) :: CAT k)
Monoidal k => CategoryOf [k] Source Comments # 
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 (PROFK j k) Source Comments # 
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
Rewrite g => CategoryOf (FREE g) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Free

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Free

type (~>) = Free :: FREE g -> FREE g -> Type
Promonad p => CategoryOf (KLEISLI p) Source Comments #

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 (NatK j k) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Nat

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Nat

type (~>) = Nat' :: NatK j k -> NatK j k -> Type
CategoryOf (Simplex j k) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Simplex

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Simplex

type (~>) = BiSimplex :: Simplex j k -> Simplex j k -> Type
CategoryOf k => CategoryOf (SUBCAT ob) Source Comments #

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 Comments # 
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 Comments #

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
(CategoryOf k1, CategoryOf k2) => CategoryOf (k1, k2) Source Comments # 
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 Comments # 
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 Comments # 
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 Comments # 
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 Comments # 
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 Comments # 
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
Profunctor p => CategoryOf (COLLAGE p) Source Comments # 
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
(Bicategory kk, Ob0 kk k) => CategoryOf (ENDO kk k) Source Comments # 
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 (DiscreteK ob j k) Source Comments # 
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 Comments # 
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 Comments # 
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 Comments # 
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 Comments # 
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 Comments #

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 (kk i j) => CategoryOf (WKK kk i j) Source Comments # 
Instance details

Defined in Proarrow.Category.Equipment.BiAsEquipment

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Equipment.BiAsEquipment

type (~>) = W :: WKK kk i j -> WKK kk i j -> Type
CategoryOf (kk i j) => CategoryOf (QKK kk i j) Source Comments # 
Instance details

Defined in Proarrow.Category.Equipment.Quintet

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Equipment.Quintet

type (~>) = Q2 :: QKK kk i j -> QKK kk i j -> Type
IsOptic w c d => CategoryOf (OPTIC w c d) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Optic

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Monoidal.Optic

type (~>) = OpticCat :: OPTIC w c d -> OPTIC w c d -> Type
(CategoryOf (jj (Fst ik) (Fst jl)), CategoryOf (kk (Snd ik) (Snd jl))) => CategoryOf (PRODK jj kk ik jl) Source Comments # 
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

class (Promonad cat, CategoryOf k, cat ~ ((~>) :: CAT k)) => Category (cat :: CAT k) Source Comments #

Instances

Instances details
(Promonad cat, CategoryOf k, cat ~ ((~>) :: CAT k)) => Category (cat :: PRO k k) Source Comments # 
Instance details

Defined in Proarrow.Core

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

class (CategoryOf j, CategoryOf k) => Profunctor (p :: PRO j k) where Source Comments #

Minimal complete definition

dimap

Methods

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

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

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

Instances

Instances details
Profunctor Booleans Source Comments # 
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 Comments #

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

Profunctor Cat Source Comments # 
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 Comments #

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

Profunctor (:-) Source Comments # 
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 Comments #

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

Profunctor Linear Source Comments # 
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 Comments #

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

Profunctor Free Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Linear

Methods

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

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

Profunctor Pointed Source Comments # 
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 Comments #

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

Profunctor Simplex Source Comments # 
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 Comments #

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

Profunctor Zero Source Comments # 
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 Comments #

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

Profunctor Unit Source Comments # 
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 Comments #

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

Profunctor Forget Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Linear

Methods

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

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

Profunctor Forget Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Simplex

Methods

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

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

CategoryOf k => Profunctor (Terminate :: () -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

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

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

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

Defined in Proarrow.Category.Instance.Nat

Methods

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

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

Profunctor (Reader r :: Type -> Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Promonad.Reader

Methods

dimap :: (c ~> a) -> (b ~> d) -> Reader r a b -> Reader r c d Source Comments #

(\\) :: ((Ob a, Ob b) => r0) -> Reader r a b -> r0 Source Comments #

Profunctor (Writer m :: Type -> Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Promonad.Writer

Methods

dimap :: (c ~> a) -> (b ~> d) -> Writer m a b -> Writer m c d Source Comments #

(\\) :: ((Ob a, Ob b) => r) -> Writer m a b -> r Source Comments #

CategoryOf k => Profunctor (Id :: k -> k -> Type) Source Comments # 
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 Comments #

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

Representable d => Profunctor (EndLimit d :: Type -> () -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Limit

Methods

dimap :: forall c a (b :: ()) (d0 :: ()). (c ~> a) -> (b ~> d0) -> EndLimit d a b -> EndLimit d c d0 Source Comments #

(\\) :: forall a (b :: ()) r. ((Ob a, Ob b) => r) -> EndLimit d a b -> r Source Comments #

Profunctor (Replacing a b :: Type -> Type -> Type) Source Comments # 
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 Comments #

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

Profunctor (Setting a b :: Type -> Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Optic

Methods

dimap :: (c ~> a0) -> (b0 ~> d) -> Setting a b a0 b0 -> Setting a b c d Source Comments #

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

Profunctor (Viewing a b :: Type -> Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Optic

Methods

dimap :: (c ~> a0) -> (b0 ~> d) -> Viewing a b a0 b0 -> Viewing a b c d Source Comments #

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

Profunctor (->) Source Comments # 
Instance details

Defined in Proarrow.Core

Methods

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

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

Monoid m => Profunctor (Replicate m :: j -> Nat -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Simplex

Methods

dimap :: forall (c :: j) (a :: j) (b :: Nat) (d :: Nat). (c ~> a) -> (b ~> d) -> Replicate m a b -> Replicate m c d Source Comments #

(\\) :: forall (a :: j) (b :: Nat) r. ((Ob a, Ob b) => r) -> Replicate m a b -> r Source Comments #

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

Defined in Proarrow.Profunctor.Day

Methods

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

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

(HasBinaryCoproducts k, Representable d) => Profunctor (CoproductColimit d :: k -> () -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Colimit

Methods

dimap :: forall (c :: k) (a :: k) (b :: ()) (d0 :: ()). (c ~> a) -> (b ~> d0) -> CoproductColimit d a b -> CoproductColimit d c d0 Source Comments #

(\\) :: forall (a :: k) (b :: ()) r. ((Ob a, Ob b) => r) -> CoproductColimit d a b -> r Source Comments #

HasInitialObject k => Profunctor (InitialLimit d :: k -> () -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Colimit

Methods

dimap :: forall (c :: k) (a :: k) (b :: ()) (d0 :: ()). (c ~> a) -> (b ~> d0) -> InitialLimit d a b -> InitialLimit d c d0 Source Comments #

(\\) :: forall (a :: k) (b :: ()) r. ((Ob a, Ob b) => r) -> InitialLimit d a b -> r Source Comments #

(HasBinaryProducts k, Representable d) => Profunctor (ProductLimit d :: k -> () -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Limit

Methods

dimap :: forall (c :: k) (a :: k) (b :: ()) (d0 :: ()). (c ~> a) -> (b ~> d0) -> ProductLimit d a b -> ProductLimit d c d0 Source Comments #

(\\) :: forall (a :: k) (b :: ()) r. ((Ob a, Ob b) => r) -> ProductLimit d a b -> r Source Comments #

HasTerminalObject k => Profunctor (TerminalLimit d :: k -> () -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Limit

Methods

dimap :: forall (c :: k) (a :: k) (b :: ()) (d0 :: ()). (c ~> a) -> (b ~> d0) -> TerminalLimit d a b -> TerminalLimit d c d0 Source Comments #

(\\) :: forall (a :: k) (b :: ()) r. ((Ob a, Ob b) => r) -> TerminalLimit d a b -> r Source Comments #

(CategoryOf j, CategoryOf k) => Profunctor (InitialProfunctor :: k -> j -> Type) Source Comments # 
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 Comments #

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

(CategoryOf j, CategoryOf k) => Profunctor (TerminalProfunctor :: k -> j -> Type) Source Comments # 
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 Comments #

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

Profunctor p => Profunctor (Fix p :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Fix

Methods

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

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

Profunctor p => Profunctor (FreeMonoid p :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Free

Methods

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

(\\) :: forall (a :: k) (b :: k) r. ((Ob a, Ob b) => r) -> FreeMonoid p a b -> r Source Comments #

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

Defined in Proarrow.Profunctor.Free

Methods

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

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

(Monoidal k, Ob s) => Profunctor (State s :: k -> k -> Type) Source Comments # 
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 Comments #

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

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

Defined in Proarrow.Profunctor.Corepresentable

Methods

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

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

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

Defined in Proarrow.Profunctor.Costar

Methods

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

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

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

Defined in Proarrow.Profunctor.Coyoneda

Methods

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

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

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

Defined in Proarrow.Profunctor.Representable

Methods

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

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

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

Defined in Proarrow.Profunctor.Representable

Methods

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

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

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

Defined in Proarrow.Profunctor.Representable

Methods

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

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

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

Defined in Proarrow.Profunctor.Star

Methods

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

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

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

Defined in Proarrow.Profunctor.Wrapped

Methods

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

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

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

Defined in Proarrow.Profunctor.Yoneda

Methods

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

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

(Monoidal k, Ob a, Ob b) => Profunctor (Bipara a b :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Enriched.Bipara

Methods

dimap :: forall (c :: k) (a0 :: k) (b0 :: k) (d :: k). (c ~> a0) -> (b0 ~> d) -> Bipara a b a0 b0 -> Bipara a b c d Source Comments #

(\\) :: forall (a0 :: k) (b0 :: k) r. ((Ob a0, Ob b0) => r) -> Bipara a b a0 b0 -> r Source Comments #

Monad m => Profunctor (Classifying m a b :: Type -> Type -> Type) Source Comments # 
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 Comments #

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

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

Defined in Proarrow.Profunctor.Coproduct

Methods

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

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

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

Defined in Proarrow.Profunctor.Day

Methods

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

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

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

Defined in Proarrow.Profunctor.Day

Methods

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

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

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

Defined in Proarrow.Profunctor.Exponential

Methods

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

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

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

Defined in Proarrow.Profunctor.Product

Methods

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

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

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

Defined in Proarrow.Profunctor.Yoneda

Methods

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

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

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

Defined in Proarrow.Profunctor.Composition

Methods

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

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

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

Defined in Proarrow.Profunctor.Ran

Methods

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

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

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

Defined in Proarrow.Profunctor.Rift

Methods

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

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

(Profunctor j3, Profunctor p) => Profunctor (Precompose j3 p :: j2 -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Ran

Methods

dimap :: forall (c :: j2) (a :: j2) (b :: k) (d :: k). (c ~> a) -> (b ~> d) -> Precompose j3 p a b -> Precompose j3 p c d Source Comments #

(\\) :: forall (a :: j2) (b :: k) r. ((Ob a, Ob b) => r) -> Precompose j3 p a b -> r Source Comments #

(CategoryOf c, CategoryOf d) => Profunctor (Optic w a b :: c -> d -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Optic

Methods

dimap :: forall (c0 :: c) (a0 :: c) (b0 :: d) (d0 :: d). (c0 ~> a0) -> (b0 ~> d0) -> Optic w a b a0 b0 -> Optic w a b c0 d0 Source Comments #

(\\) :: forall (a0 :: c) (b0 :: d) r. ((Ob a0, Ob b0) => r) -> Optic w a b a0 b0 -> r Source Comments #

CategoryOf k => Profunctor (DoubleNeg :: k -> DUAL (DUAL k) -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

dimap :: forall (c :: k) (a :: k) (b :: DUAL (DUAL k)) (d :: DUAL (DUAL k)). (c ~> a) -> (b ~> d) -> DoubleNeg a b -> DoubleNeg c d Source Comments #

(\\) :: forall (a :: k) (b :: DUAL (DUAL k)) r. ((Ob a, Ob b) => r) -> DoubleNeg a b -> r Source Comments #

Profunctor p => Profunctor (CoprodDom p :: j1 -> COPROD j2 -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Star

Methods

dimap :: forall (c :: j1) (a :: j1) (b :: COPROD j2) (d :: COPROD j2). (c ~> a) -> (b ~> d) -> CoprodDom p a b -> CoprodDom p c d Source Comments #

(\\) :: forall (a :: j1) (b :: COPROD j2) r. ((Ob a, Ob b) => r) -> CoprodDom p a b -> r Source Comments #

Monad m => Profunctor (Updating a b :: Type -> KlCat m -> Type) Source Comments # 
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 Comments #

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

CategoryOf k => Profunctor (Hom :: () -> (OPPOSITE k, k) -> Type) Source Comments # 
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 Comments #

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

Closed k => Profunctor (ExponentialFunctor :: k -> (OPPOSITE k, k) -> Type) Source Comments # 
Instance details

Defined in Proarrow.Object.Exponential

Methods

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

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

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

Defined in Proarrow.Category.Instance.Kleisli

Methods

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

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

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

Defined in Proarrow.Category.Instance.Cat

Methods

dimap :: forall (c :: j) (a :: j) (b :: (j, k)) (d :: (j, k)). (c ~> a) -> (b ~> d) -> FstCat a b -> FstCat c d Source Comments #

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

CategoryOf k => Profunctor (Forget ob :: k -> SUBCAT ob -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Forget

Methods

dimap :: forall (c :: k) (a :: k) (b :: SUBCAT ob) (d :: SUBCAT ob). (c ~> a) -> (b ~> d) -> Forget ob a b -> Forget ob c d Source Comments #

(\\) :: forall (a :: k) (b :: SUBCAT ob) r. ((Ob a, Ob b) => r) -> Forget ob a b -> r Source Comments #

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

Defined in Proarrow.Category.Instance.Cat

Methods

dimap :: forall (c :: k) (a :: k) (b :: (j, k)) (d :: (j, k)). (c ~> a) -> (b ~> d) -> SndCat a b -> SndCat c d Source Comments #

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

(Profunctor p, CategoryOf j, CategoryOf k) => Profunctor (Uncurry p :: k -> (i, j) -> Type) Source Comments # 
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 Comments #

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

(Profunctor p, Representable f, Representable g, Reifies s (ProfSq p (Id :: j2 -> j2 -> Type) f g)) => Profunctor (CotabulatorFactorizer s p f g :: j2 -> COLLAGE p -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Bicategory.Prof

Methods

dimap :: forall (c :: j2) (a :: j2) (b :: COLLAGE p) (d :: COLLAGE p). (c ~> a) -> (b ~> d) -> CotabulatorFactorizer s p f g a b -> CotabulatorFactorizer s p f g c d Source Comments #

(\\) :: forall (a :: j2) (b :: COLLAGE p) r. ((Ob a, Ob b) => r) -> CotabulatorFactorizer s p f g a b -> r Source Comments #

Profunctor (LTE :: FIN n -> FIN n -> Type) Source Comments # 
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 Comments #

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

CategoryOf k => Profunctor (List :: LIST k -> LIST k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.List

Methods

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

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

Num a => Profunctor (Mat :: MatK a -> MatK a -> Type) Source Comments # 
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 Comments #

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

PreorderOf k => Profunctor (PoAsCat :: POCATK k -> POCATK k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.PreorderAsCategory

Methods

dimap :: forall (c :: POCATK k) (a :: POCATK k) (b :: POCATK k) (d :: POCATK k). (c ~> a) -> (b ~> d) -> PoAsCat a b -> PoAsCat c d Source Comments #

(\\) :: forall (a :: POCATK k) (b :: POCATK k) r. ((Ob a, Ob b) => r) -> PoAsCat a b -> r Source Comments #

BiCCC k => Profunctor (FreeCCC :: FK k -> FK k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Helper.CCC

Methods

dimap :: forall (c :: FK k) (a :: FK k) (b :: FK k) (d :: FK k). (c ~> a) -> (b ~> d) -> FreeCCC a b -> FreeCCC c d Source Comments #

(\\) :: forall (a :: FK k) (b :: FK k) r. ((Ob a, Ob b) => r) -> FreeCCC a b -> r Source Comments #

Monoidal k => Profunctor (Strictified :: [k] -> [k] -> Type) Source Comments # 
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 Comments #

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

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

Defined in Proarrow.Category.Monoidal.Optic

Methods

dimap :: forall (c :: COPROD Type) (a0 :: COPROD Type) (b0 :: COPROD Type) (d :: COPROD Type). (c ~> a0) -> (b0 ~> d) -> Previewing a b a0 b0 -> Previewing a b c d Source Comments #

(\\) :: forall (a0 :: COPROD Type) (b0 :: COPROD Type) r. ((Ob a0, Ob b0) => r) -> Previewing a b a0 b0 -> r Source Comments #

Profunctor p => Profunctor (Rev p :: REV k -> REV j -> Type) Source Comments # 
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 Comments #

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

Profunctor p => Profunctor (Op p :: OPPOSITE j -> OPPOSITE k -> Type) Source Comments # 
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 Comments #

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

Profunctor p => Profunctor (Coprod p :: COPROD k -> COPROD j -> Type) Source Comments # 
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 Comments #

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

Profunctor p => Profunctor (Prod p :: PROD k -> PROD j -> Type) Source Comments # 
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 Comments #

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

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

Defined in Proarrow.Category.Instance.Kleisli

Methods

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

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

HasCofree ob => Profunctor (CofreeSub ob :: SUBCAT ob -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Cofree

Methods

dimap :: forall (c :: SUBCAT ob) (a :: SUBCAT ob) (b :: k) (d :: k). (c ~> a) -> (b ~> d) -> CofreeSub ob a b -> CofreeSub ob c d Source Comments #

(\\) :: forall (a :: SUBCAT ob) (b :: k) r. ((Ob a, Ob b) => r) -> CofreeSub ob a b -> r Source Comments #

HasFree ob => Profunctor (FreeSub ob :: SUBCAT ob -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Free

Methods

dimap :: forall (c :: SUBCAT ob) (a :: SUBCAT ob) (b :: k) (d :: k). (c ~> a) -> (b ~> d) -> FreeSub ob a b -> FreeSub ob c d Source Comments #

(\\) :: forall (a :: SUBCAT ob) (b :: k) r. ((Ob a, Ob b) => r) -> FreeSub ob a b -> r Source Comments #

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

Defined in Proarrow.Category.Instance.Cat

Methods

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

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

(Profunctor p, Profunctor q) => Profunctor (p :&&&: q :: (i, j) -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

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

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

(Profunctor p, Profunctor q) => Profunctor (DistribDual p q :: (DUAL j, DUAL k) -> DUAL (j', k') -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

dimap :: forall (c :: (DUAL j, DUAL k)) (a :: (DUAL j, DUAL k)) (b :: DUAL (j', k')) (d :: DUAL (j', k')). (c ~> a) -> (b ~> d) -> DistribDual p q a b -> DistribDual p q c d Source Comments #

(\\) :: forall (a :: (DUAL j, DUAL k)) (b :: DUAL (j', k')) r. ((Ob a, Ob b) => r) -> DistribDual p q a b -> r Source Comments #

Profunctor (Prof :: PROFK j k -> PROFK j k -> Type) Source Comments # 
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 Comments #

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

Rewrite g => Profunctor (Free :: FREE g -> FREE g -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Free

Methods

dimap :: forall (c :: FREE g) (a :: FREE g) (b :: FREE g) (d :: FREE g). (c ~> a) -> (b ~> d) -> Free a b -> Free c d Source Comments #

(\\) :: forall (a :: FREE g) (b :: FREE g) r. ((Ob a, Ob b) => r) -> Free a b -> r Source Comments #

Promonad p => Profunctor (Kleisli :: KLEISLI p -> KLEISLI p -> Type) Source Comments # 
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 Comments #

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

Profunctor (Nat' :: NatK j k -> NatK j k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Nat

Methods

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

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

Profunctor (BiSimplex :: Simplex j k -> Simplex j k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Simplex

Methods

dimap :: forall (c :: Simplex j k) (a :: Simplex j k) (b :: Simplex j k) (d :: Simplex j k). (c ~> a) -> (b ~> d) -> BiSimplex a b -> BiSimplex c d Source Comments #

(\\) :: forall (a :: Simplex j k) (b :: Simplex j k) r. ((Ob a, Ob b) => r) -> BiSimplex a b -> r Source Comments #

Profunctor (Terminal :: Unit '() '() -> Unit '() '() -> Type) Source Comments # 
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 Comments #

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

Profunctor (Prof :: (j +-> k) -> (j +-> k) -> Type) Source Comments # 
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 Comments #

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

Profunctor (Nat :: (k1 -> k2 -> k3 -> k4 -> Type) -> (k1 -> k2 -> k3 -> k4 -> Type) -> Type) Source Comments # 
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 Comments #

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

Profunctor (Nat :: (k1 -> k2 -> k3 -> Type) -> (k1 -> k2 -> k3 -> Type) -> Type) Source Comments # 
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 Comments #

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

Profunctor (Nat :: (k1 -> Type) -> (k1 -> Type) -> Type) Source Comments # 
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 Comments #

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

Profunctor p => Profunctor (Sub p :: SUBCAT ob -> SUBCAT ob -> Type) Source Comments # 
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 Comments #

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

(Profunctor p, Profunctor q) => Profunctor (Swap p q :: (k, i) -> (h, j) -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

dimap :: forall (c :: (k, i)) (a :: (k, i)) (b :: (h, j)) (d :: (h, j)). (c ~> a) -> (b ~> d) -> Swap p q a b -> Swap p q c d Source Comments #

(\\) :: forall (a :: (k, i)) (b :: (h, j)) r. ((Ob a, Ob b) => r) -> Swap p q a b -> r Source Comments #

(Profunctor p, Profunctor q) => Profunctor (p :**: q :: (k1, k2) -> (j1, j2) -> Type) Source Comments # 
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 Comments #

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

(HasCompanions hk vk, Ob0 vk h, Ob0 vk i, Ob0 vk j, Ob0 vk k) => Profunctor (Sq :: (hk j h, vk h i) -> (hk k i, vk j k) -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Equipment

Methods

dimap :: forall (c0 :: (hk j h, vk h i)) (a :: (hk j h, vk h i)) (b :: (hk k i, vk j k)) (d :: (hk k i, vk j k)). (c0 ~> a) -> (b ~> d) -> Sq a b -> Sq c0 d Source Comments #

(\\) :: forall (a :: (hk j h, vk h i)) (b :: (hk k i, vk j k)) r. ((Ob a, Ob b) => r) -> Sq a b -> r Source Comments #

(HasCompanions hk vk, Ob0 vk h, Ob0 vk i, Ob0 vk j, Ob0 vk k) => Profunctor (RetroSq :: (hk k i, vk j k) -> (hk j h, vk h i) -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Equipment

Methods

dimap :: forall (c0 :: (hk k i, vk j k)) (a :: (hk k i, vk j k)) (b :: (hk j h, vk h i)) (d :: (hk j h, vk h i)). (c0 ~> a) -> (b ~> d) -> RetroSq a b -> RetroSq c0 d Source Comments #

(\\) :: forall (a :: (hk k i, vk j k)) (b :: (hk j h, vk h i)) r. ((Ob a, Ob b) => r) -> RetroSq a b -> r Source Comments #

Profunctor p => Profunctor (InjR p :: COLLAGE p -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Collage

Methods

dimap :: forall (c :: COLLAGE p) (a :: COLLAGE p) (b :: k) (d :: k). (c ~> a) -> (b ~> d) -> InjR p a b -> InjR p c d Source Comments #

(\\) :: forall (a :: COLLAGE p) (b :: k) r. ((Ob a, Ob b) => r) -> InjR p a b -> r Source Comments #

Profunctor p => Profunctor (InjL p :: COLLAGE p -> k1 -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Collage

Methods

dimap :: forall (c :: COLLAGE p) (a :: COLLAGE p) (b :: k1) (d :: k1). (c ~> a) -> (b ~> d) -> InjL p a b -> InjL p c d Source Comments #

(\\) :: forall (a :: COLLAGE p) (b :: k1) r. ((Ob a, Ob b) => r) -> InjL p a b -> r Source Comments #

(CategoryOf k, Ob i, Ob j) => Profunctor (Category :: PLAINK k i j -> PLAINK k i j -> Type) Source Comments # 
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 Comments #

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

CategoryOf k => Profunctor (Mon2 :: MonK k i j -> MonK k i j -> Type) Source Comments # 
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 Comments #

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

Profunctor p => Profunctor (Collage :: COLLAGE p -> COLLAGE p -> Type) Source Comments # 
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 Comments #

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

(Bicategory kk, Ob0 kk k) => Profunctor (Endo :: ENDO kk k -> ENDO kk k -> Type) Source Comments # 
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 Comments #

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

Profunctor (Bidiscrete :: DiscreteK ob j k -> DiscreteK ob j k -> Type) Source Comments # 
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 Comments #

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

CategoryOf (kk j k2) => Profunctor (Co :: COK kk j k2 -> COK kk j k2 -> Type) Source Comments # 
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 Comments #

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

CategoryOf (kk k2 j) => Profunctor (Op :: OPK kk j k2 -> OPK kk j k2 -> Type) Source Comments # 
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 Comments #

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

(CategoryOf (kk j k2), Bicategory kk) => Profunctor (Strictified :: Path kk j k2 -> Path kk j k2 -> Type) Source Comments # 
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 Comments #

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

Profunctor ((~>) :: CAT (kk i j)) => Profunctor (HomW :: HK kk i j -> HK kk i j -> Type) Source Comments # 
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 Comments #

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

Profunctor ((~>) :: CAT (kk i j)) => Profunctor (Sub :: SUBCAT tag kk i j -> SUBCAT tag kk i j -> Type) Source Comments # 
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 Comments #

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

CategoryOf (kk i j) => Profunctor (W :: WKK kk i j -> WKK kk i j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Equipment.BiAsEquipment

Methods

dimap :: forall (c :: WKK kk i j) (a :: WKK kk i j) (b :: WKK kk i j) (d :: WKK kk i j). (c ~> a) -> (b ~> d) -> W a b -> W c d Source Comments #

(\\) :: forall (a :: WKK kk i j) (b :: WKK kk i j) r. ((Ob a, Ob b) => r) -> W a b -> r Source Comments #

CategoryOf (kk i j) => Profunctor (Q2 :: QKK kk i j -> QKK kk i j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Equipment.Quintet

Methods

dimap :: forall (c :: QKK kk i j) (a :: QKK kk i j) (b :: QKK kk i j) (d :: QKK kk i j). (c ~> a) -> (b ~> d) -> Q2 a b -> Q2 c d Source Comments #

(\\) :: forall (a :: QKK kk i j) (b :: QKK kk i j) r. ((Ob a, Ob b) => r) -> Q2 a b -> r Source Comments #

IsOptic w c d => Profunctor (OpticCat :: OPTIC w c d -> OPTIC w c d -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Optic

Methods

dimap :: forall (c0 :: OPTIC w c d) (a :: OPTIC w c d) (b :: OPTIC w c d) (d0 :: OPTIC w c d). (c0 ~> a) -> (b ~> d0) -> OpticCat a b -> OpticCat c0 d0 Source Comments #

(\\) :: forall (a :: OPTIC w c d) (b :: OPTIC w c d) r. ((Ob a, Ob b) => r) -> OpticCat a b -> r Source Comments #

(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 Comments # 
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 Comments #

(\\) :: 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 Comments #

(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 Comments # 
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 Comments #

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

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

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

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

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 Comments #

class Profunctor p => Promonad (p :: PRO k k) where Source Comments #

Methods

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

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

Instances

Instances details
Promonad Booleans Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Methods

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

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

Promonad Cat Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

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

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

Promonad (:-) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Constraint

Methods

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

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

Promonad Linear Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Linear

Methods

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

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

Promonad Pointed Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Methods

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

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

Promonad Simplex Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Simplex

Methods

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

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

Promonad Zero Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Zero

Methods

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

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

Promonad Unit Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Unit

Methods

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

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

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

Defined in Proarrow.Category.Instance.Nat

Promonad (Reader r :: Type -> Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Promonad.Reader

Methods

id :: Ob a => Reader r a a Source Comments #

(.) :: Reader r b c -> Reader r a b -> Reader r a c Source Comments #

Monoid m => Promonad (Writer m :: Type -> Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Promonad.Writer

Methods

id :: Ob a => Writer m a a Source Comments #

(.) :: Writer m b c -> Writer m a b -> Writer m a c Source Comments #

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

Defined in Proarrow.Profunctor.Identity

Methods

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

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

Promonad (->) Source Comments # 
Instance details

Defined in Proarrow.Core

Methods

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

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

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

Defined in Proarrow.Profunctor.Free

Methods

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

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

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

Defined in Proarrow.Promonad.State

Methods

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

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

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

Defined in Proarrow.Profunctor.Star

Methods

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

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

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

Defined in Proarrow.Profunctor.Wrapped

Methods

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

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

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

Defined in Proarrow.Adjunction

Methods

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

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

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

Defined in Proarrow.Profunctor.Ran

Methods

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

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

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

Defined in Proarrow.Profunctor.Rift

Methods

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

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

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

Defined in Proarrow.Category.Instance.Fin

Methods

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

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

CategoryOf k => Promonad (List :: LIST k -> LIST k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.List

Methods

id :: forall (a :: LIST k). Ob a => List a a Source Comments #

(.) :: forall (b :: LIST k) (c :: LIST k) (a :: LIST k). List b c -> List a b -> List a c Source Comments #

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

Defined in Proarrow.Category.Instance.Mat

Methods

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

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

PreorderOf k => Promonad (PoAsCat :: POCATK k -> POCATK k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.PreorderAsCategory

Methods

id :: forall (a :: POCATK k). Ob a => PoAsCat a a Source Comments #

(.) :: forall (b :: POCATK k) (c :: POCATK k) (a :: POCATK k). PoAsCat b c -> PoAsCat a b -> PoAsCat a c Source Comments #

BiCCC k => Promonad (FreeCCC :: FK k -> FK k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Helper.CCC

Methods

id :: forall (a :: FK k). Ob a => FreeCCC a a Source Comments #

(.) :: forall (b :: FK k) (c :: FK k) (a :: FK k). FreeCCC b c -> FreeCCC a b -> FreeCCC a c Source Comments #

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

Defined in Proarrow.Category.Monoidal.Strictified

Methods

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

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

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

Defined in Proarrow.Category.Monoidal.Rev

Methods

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

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

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

Defined in Proarrow.Category.Opposite

Methods

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

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

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

Defined in Proarrow.Object.BinaryCoproduct

Methods

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

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

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

Defined in Proarrow.Object.BinaryProduct

Methods

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

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

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

Defined in Proarrow.Category.Bicategory.Prof

Methods

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

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

Rewrite g => Promonad (Free :: FREE g -> FREE g -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Free

Methods

id :: forall (a :: FREE g). Ob a => Free a a Source Comments #

(.) :: forall (b :: FREE g) (c :: FREE g) (a :: FREE g). Free b c -> Free a b -> Free a c Source Comments #

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

Defined in Proarrow.Category.Instance.Kleisli

Methods

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

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

Promonad (Nat' :: NatK j k -> NatK j k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Nat

Methods

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

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

Promonad (BiSimplex :: Simplex j k -> Simplex j k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Simplex

Methods

id :: forall (a :: Simplex j k). Ob a => BiSimplex a a Source Comments #

(.) :: forall (b :: Simplex j k) (c :: Simplex j k) (a :: Simplex j k). BiSimplex b c -> BiSimplex a b -> BiSimplex a c Source Comments #

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

Defined in Proarrow.Category.Bicategory.Terminal

Methods

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

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

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

Defined in Proarrow.Category.Instance.Prof

Methods

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

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

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

Defined in Proarrow.Category.Instance.Nat

Methods

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

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

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

Defined in Proarrow.Category.Instance.Nat

Methods

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

(.) :: 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 Comments #

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

Defined in Proarrow.Category.Instance.Nat

Methods

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

(.) :: 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 Comments #

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

Defined in Proarrow.Category.Instance.Sub

Methods

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

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

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

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 Comments #

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

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

Defined in Proarrow.Category.Bicategory.CategoryAsBi

Methods

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

(.) :: 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 Comments #

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

Defined in Proarrow.Category.Bicategory.MonoidalAsBi

Methods

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

(.) :: 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 Comments #

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

Defined in Proarrow.Category.Instance.Collage

Methods

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

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

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

Defined in Proarrow.Category.Monoidal.Endo

Methods

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

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

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

Defined in Proarrow.Category.Bicategory.Bidiscrete

Methods

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

(.) :: 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 Comments #

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

Defined in Proarrow.Category.Bicategory.Co

Methods

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

(.) :: 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 Comments #

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

Defined in Proarrow.Category.Bicategory.Op

Methods

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

(.) :: 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 Comments #

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

Defined in Proarrow.Category.Bicategory.Strictified

Methods

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

(.) :: 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 Comments #

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

Defined in Proarrow.Category.Bicategory.Hom

Methods

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

(.) :: 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 Comments #

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

Defined in Proarrow.Category.Bicategory.Sub

Methods

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

(.) :: 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 Comments #

CategoryOf (kk i j) => Promonad (W :: WKK kk i j -> WKK kk i j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Equipment.BiAsEquipment

Methods

id :: forall (a :: WKK kk i j). Ob a => W a a Source Comments #

(.) :: forall (b :: WKK kk i j) (c :: WKK kk i j) (a :: WKK kk i j). W b c -> W a b -> W a c Source Comments #

CategoryOf (kk i j) => Promonad (Q2 :: QKK kk i j -> QKK kk i j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Equipment.Quintet

Methods

id :: forall (a :: QKK kk i j). Ob a => Q2 a a Source Comments #

(.) :: forall (b :: QKK kk i j) (c :: QKK kk i j) (a :: QKK kk i j). Q2 b c -> Q2 a b -> Q2 a c Source Comments #

IsOptic w c d => Promonad (OpticCat :: OPTIC w c d -> OPTIC w c d -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Optic

Methods

id :: forall (a :: OPTIC w c d). Ob a => OpticCat a a Source Comments #

(.) :: forall (b :: OPTIC w c d) (c0 :: OPTIC w c d) (a :: OPTIC w c d). OpticCat b c0 -> OpticCat a b -> OpticCat a c0 Source Comments #

(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 Comments # 
Instance details

Defined in Proarrow.Category.Bicategory.Product

Methods

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

(.) :: 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 Comments #

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

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

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

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

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

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

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 'K ('K k :: KIND) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

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

Defined in Proarrow.Category.Instance.Constraint

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

Defined in Proarrow.Category.Instance.Linear

type UN 'L ('L a :: LINEAR) = a
type UN 'P ('P a :: POINTED) Source Comments # 
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 Comments # 
Instance details

Defined in Proarrow.Category.Instance.Mat

type UN ('M :: Nat -> MatK a) ('M n :: MatK a) = n
type UN ('PC :: j -> POCATK j) ('PC k :: POCATK j) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.PreorderAsCategory

type UN ('PC :: j -> POCATK j) ('PC k :: POCATK j) = k
type UN ('R :: j -> REV j) ('R a :: REV j) Source Comments # 
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 Comments # 
Instance details

Defined in Proarrow.Category.Opposite

type UN ('OP :: j -> OPPOSITE j) ('OP k :: OPPOSITE j) = k
type UN ('F :: j -> FK j) ('F a :: FK j) Source Comments # 
Instance details

Defined in Proarrow.Helper.CCC

type UN ('F :: j -> FK j) ('F a :: FK j) = a
type UN ('COPR :: j -> COPROD j) ('COPR k :: COPROD j) Source Comments # 
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 Comments # 
Instance details

Defined in Proarrow.Object.BinaryProduct

type UN ('PR :: j -> PROD j) ('PR k :: PROD j) = k
type UN ('T :: j -> THIN j) ('T a :: THIN j) Source Comments # 
Instance details

Defined in Proarrow.Preorder.ThinCategory

type UN ('T :: j -> THIN j) ('T a :: THIN j) = a
type UN ('CK :: j -> CATK j i) ('CK a :: CATK j i) Source Comments # 
Instance details

Defined in Proarrow.Category.Enriched

type UN ('CK :: j -> CATK j i) ('CK a :: CATK j i) = a
type UN ('BIPARA :: j -> BIPARAK j i) ('BIPARA a :: BIPARAK j i) Source Comments # 
Instance details

Defined in Proarrow.Category.Enriched.Bipara

type UN ('BIPARA :: j -> BIPARAK j i) ('BIPARA a :: BIPARAK j i) = a
type UN ('F :: j -> FREE g) ('F k :: FREE g) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Free

type UN ('F :: j -> FREE g) ('F k :: FREE g) = k
type UN ('KL :: j -> KLEISLI p) ('KL k :: KLEISLI p) Source Comments # 
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 Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

type UN ('SUB :: j -> SUBCAT ob) ('SUB k :: SUBCAT ob) = k
type UN ('MK :: j1 -> MonK j1 i j2) ('MK k :: MonK j1 i j2) Source Comments # 
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 ('L :: [k] -> LIST k) ('L as :: LIST k) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.List

type UN ('L :: [k] -> LIST k) ('L as :: LIST k) = as
type UN ('PK :: (j +-> k) -> PROFK j k) ('PK p :: PROFK j k) Source Comments # 
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) -> NatK j k) ('NT f :: NatK j k) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Nat

type UN ('NT :: (j -> k) -> NatK j k) ('NT f :: NatK j k) = f
type UN ('E :: kk k k -> ENDO kk k) ('E p :: ENDO kk k) Source Comments # 
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 Comments # 
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 Comments # 
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 Comments # 
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 Comments # 
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 ('WK :: kk i j -> WKK kk i j) ('WK p :: WKK kk i j) Source Comments # 
Instance details

Defined in Proarrow.Category.Equipment.BiAsEquipment

type UN ('WK :: kk i j -> WKK kk i j) ('WK p :: WKK kk i j) = p
type UN ('QK :: kk i j -> QKK kk i j) ('QK p :: QKK kk i j) Source Comments # 
Instance details

Defined in Proarrow.Category.Equipment.Quintet

type UN ('QK :: kk i j -> QKK kk i j) ('QK p :: QKK kk i j) = p

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

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