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 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 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 UNIT 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 :: UNIT) 
Instance details

Defined in Proarrow.Category.Instance.Unit

type Ob (a :: UNIT) = a ~ 'U
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) = IsVoid 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 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
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 :: REV k -> REV k -> Type
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)
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 :: COPROD k -> COPROD k -> Type
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 :: PROD k -> PROD k -> Type
Monoidal k => CategoryOf [k] Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Monoidal

type (~>) = Strictified :: [k] -> [k] -> Type
CategoryOf (DiscreteK 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 j k -> DiscreteK j k -> Type
(j ~ 'T0, k ~ 'T0) => CategoryOf (TERMK 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 :: TERMK j k -> TERMK j k -> Type
(CategoryOf j, CategoryOf k) => CategoryOf (COPRODUCT j k) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Coproduct

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Coproduct

type (~>) = ((~>) :: CAT j) :++: ((~>) :: CAT k)
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 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 :: SUBCAT ob -> SUBCAT ob -> Type
CategoryOf (PRO 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 :: PRO j k -> PRO 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
CategoryOf (ProfK cl 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 cl j k -> ProfK cl j k -> 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 (kk j k2), Ob0 kk j, Ob0 kk k2, Bicategory kk) => CategoryOf (Path kk j k2) Source Comments # 
Instance details

Defined in Proarrow.Category.Bicategory

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Bicategory

type (~>) = Strictified :: Path kk j k2 -> Path kk j k2 -> 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 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 (QKK kk i j) Source Comments # 
Instance details

Defined in Proarrow.Category.Double.Quintet

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Double.Quintet

type (~>) = Q2 :: QKK kk i j -> QKK kk i j -> Type
(MonoidalProfunctor w, MonoidalAction m c, MonoidalAction m' 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

type IsCategoryOf k (cat :: CAT k) = (CategoryOf k, cat ~ ((~>) :: CAT k), Promonad cat) Source Comments #

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

Defined in Proarrow.Category.Instance.Linear

Methods

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

(\\) :: forall (a :: LINEAR) b r. ((Ob a, Ob b) => r) -> Forget 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 Unit Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Unit

Methods

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

(\\) :: forall (a :: UNIT) (b :: UNIT) r. ((Ob a, Ob b) => r) -> Unit 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 Free Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Linear

Methods

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

(\\) :: forall a (b :: LINEAR) r. ((Ob a, Ob b) => r) -> Free 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 :: UNIT -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

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

(\\) :: forall (a :: UNIT) (b :: k) r. ((Ob a, Ob b) => r) -> Terminate 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 (Hom :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal

Methods

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

(\\) :: forall (a :: k) (b :: k) r. ((Ob a, Ob b) => r) -> Hom 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 #

CategoryOf k => Profunctor (CoproductColimit d :: UNIT -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Colimit

Methods

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

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

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

Defined in Proarrow.Category.Colimit

Methods

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

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

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

Defined in Proarrow.Category.Limit

Methods

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

(\\) :: forall a (b :: UNIT) 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 #

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

Defined in Proarrow.Profunctor.Initial

Methods

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

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

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

Defined in Proarrow.Profunctor.Terminal

Methods

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

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

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

Defined in Proarrow.Category.Limit

Methods

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

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

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

Defined in Proarrow.Category.Limit

Methods

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

(\\) :: forall (a :: k) (b :: UNIT) r. ((Ob a, Ob b) => r) -> TerminalLimit d 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 #

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

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 #

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 #

(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.Rift

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 #

(Profunctor w, Profunctor p) => Profunctor (DayAct w p :: c -> d -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Optic

Methods

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

(\\) :: forall (a :: c) (b :: d) r. ((Ob a, Ob b) => r) -> DayAct w 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 #

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 :: UNIT -> (OPPOSITE k, k) -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Limit

Methods

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

(\\) :: forall (a :: UNIT) (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 #

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 #

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

Defined in Proarrow.Category.Monoidal.Rev

Methods

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

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

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

Defined in Proarrow.Object.BinaryCoproduct

Methods

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

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

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

Defined in Proarrow.Object.BinaryProduct

Methods

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

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

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

Defined in Proarrow.Category.Monoidal

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

Defined in Proarrow.Category.Opposite

Methods

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

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

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

Defined in Proarrow.Category.Monoidal.Applicative

Methods

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

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

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

Defined in Proarrow.Category.Monoidal.Applicative

Methods

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

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

Profunctor List Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Forget

Methods

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

(\\) :: forall (a :: SUBCAT Monoid) b r. ((Ob a, Ob b) => r) -> List 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 #

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

Defined in Proarrow.Category.Bicategory.Bidiscrete

Methods

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

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

Profunctor (Terminal :: TERMK 'T0 'T0 -> TERMK 'T0 'T0 -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Bicategory.Terminal

Methods

dimap :: forall (c :: TERMK 'T0 'T0) (a :: TERMK 'T0 'T0) (b :: TERMK 'T0 'T0) (d :: TERMK 'T0 'T0). (c ~> a) -> (b ~> d) -> Terminal a b -> Terminal c d Source Comments #

(\\) :: forall (a :: TERMK 'T0 'T0) (b :: TERMK 'T0 'T0) r. ((Ob a, Ob b) => r) -> Terminal 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 ((~>) :: CAT k) => Profunctor (Sub :: 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 a b -> Sub c d Source Comments #

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

Profunctor (Prof :: PRO j k -> PRO j k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Prof

Methods

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

(\\) :: forall (a :: PRO j k) (b :: PRO 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 (Collage p :: COPRODUCT j k -> COPRODUCT j k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Promonad.Collage

Methods

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

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

(Profunctor c, Profunctor d) => Profunctor (c :++: d :: COPRODUCT j k -> COPRODUCT j k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Coproduct

Methods

dimap :: forall (c0 :: COPRODUCT j k) (a :: COPRODUCT j k) (b :: COPRODUCT j k) (d0 :: COPRODUCT j k). (c0 ~> a) -> (b ~> d0) -> (c :++: d) a b -> (c :++: d) c0 d0 Source Comments #

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

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

Defined in Proarrow.Category.Instance.Product

Methods

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

(\\) :: forall (a :: (k1, k2)) (b :: (k1, k2)) r. ((Ob a, Ob b) => r) -> (p :**: q) 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 (Prof :: ProfK cl j k -> ProfK cl j k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Bicategory.Prof

Methods

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

(\\) :: forall (a :: ProfK cl j k) (b :: ProfK cl j k) r. ((Ob a, Ob b) => r) -> Prof 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 #

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

Defined in Proarrow.Category.Bicategory

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 #

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 #

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 (Q2 :: QKK kk i j -> QKK kk i j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Double.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 #

(MonoidalProfunctor w, MonoidalAction m c, MonoidalAction m' 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 #

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

Defined in Proarrow.Category.Instance.Unit

Methods

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

(.) :: forall (b :: UNIT) (c :: UNIT) (a :: UNIT). Unit b c -> Unit a b -> Unit 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 (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 #

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

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 #

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 #

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

Defined in Proarrow.Category.Monoidal.Rev

Methods

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

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

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

Defined in Proarrow.Object.BinaryCoproduct

Methods

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

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

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

Defined in Proarrow.Object.BinaryProduct

Methods

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

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

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

Defined in Proarrow.Category.Monoidal

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 c => Promonad (Op c :: OPPOSITE k -> OPPOSITE k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Opposite

Methods

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

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

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

Defined in Proarrow.Category.Bicategory.Bidiscrete

Methods

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

(.) :: forall (b :: DiscreteK j k) (c :: DiscreteK j k) (a :: DiscreteK j k). Bidiscrete b c -> Bidiscrete a b -> Bidiscrete a c Source Comments #

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

Defined in Proarrow.Category.Bicategory.Terminal

Methods

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

(.) :: forall (b :: TERMK 'T0 'T0) (c :: TERMK 'T0 'T0) (a :: TERMK 'T0 'T0). Terminal b c -> Terminal a b -> Terminal 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 ((~>) :: CAT k) => Promonad (Sub :: SUBCAT ob -> SUBCAT ob -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

Methods

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

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

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

Defined in Proarrow.Category.Instance.Prof

Methods

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

(.) :: forall (b :: PRO j k) (c :: PRO j k) (a :: PRO 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 #

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

Defined in Proarrow.Promonad.Collage

Methods

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

(.) :: forall (b :: COPRODUCT j k) (c :: COPRODUCT j k) (a :: COPRODUCT j k). Collage p b c -> Collage p a b -> Collage p a c Source Comments #

(IsCategoryOf j c, IsCategoryOf k d) => Promonad (c :++: d :: COPRODUCT j k -> COPRODUCT j k -> Type) Source Comments #

The coproduct category of the categories c and d.

Instance details

Defined in Proarrow.Category.Instance.Coproduct

Methods

id :: forall (a :: COPRODUCT j k). Ob a => (c :++: d) a a Source Comments #

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

(Promonad p, Promonad q) => Promonad (p :**: q :: (k1, k2) -> (k1, k2) -> Type) Source Comments #

The product promonad of promonads p and q.

Instance details

Defined in Proarrow.Category.Instance.Product

Methods

id :: forall (a :: (k1, k2)). Ob a => (p :**: q) a a Source Comments #

(.) :: forall (b :: (k1, k2)) (c :: (k1, k2)) (a :: (k1, k2)). (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 #

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

Defined in Proarrow.Category.Bicategory.Prof

Methods

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

(.) :: forall (b :: ProfK cl j k) (c :: ProfK cl j k) (a :: ProfK cl j k). Prof b c -> Prof a b -> Prof 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 #

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

Defined in Proarrow.Category.Bicategory

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 #

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 #

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 (Q2 :: QKK kk i j -> QKK kk i j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Double.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 #

(MonoidalProfunctor w, MonoidalAction m c, MonoidalAction m' 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 ('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 ('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 ('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 ('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 ('PK :: PRO j k -> ProfK cl j k) ('PK p :: ProfK cl j k) Source Comments # 
Instance details

Defined in Proarrow.Category.Bicategory.Prof

type UN ('PK :: PRO j k -> ProfK cl j k) ('PK p :: ProfK cl j k) = p
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 ('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 ('QK :: kk i j -> QKK kk i j) ('QK p :: QKK kk i j) Source Comments # 
Instance details

Defined in Proarrow.Category.Double.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.