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

Proarrow.Profunctor.Terminal

Documentation

data TerminalProfunctor (a :: k) (b :: j) where Source Comments #

Constructors

TerminalProfunctor' :: forall k (a :: k) j (b :: j). Obj a -> Obj b -> TerminalProfunctor a b 

Bundled Patterns

pattern TerminalProfunctor :: (CategoryOf j, CategoryOf k) => (Ob a, Ob b) => TerminalProfunctor a b 

Instances

Instances details
(Monoidal j, Monoidal k) => MonoidalProfunctor (TerminalProfunctor :: k -> j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Terminal

Methods

par0 :: TerminalProfunctor (Unit :: k) (Unit :: j) Source Comments #

par :: forall (x1 :: k) (x2 :: j) (y1 :: k) (y2 :: j). TerminalProfunctor x1 x2 -> TerminalProfunctor y1 y2 -> TerminalProfunctor (x1 ** y1) (x2 ** y2) 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 #

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

Defined in Proarrow.Profunctor.Terminal

Methods

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

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

Defined in Proarrow.Profunctor.Terminal

Methods

arr :: forall (a :: k) (b :: j). (Ob a, Ob b, HasArrow (TerminalProfunctor :: k -> j -> Type) a b) => TerminalProfunctor a b Source Comments #

withArr :: forall (a :: k) (b :: j) r. TerminalProfunctor a b -> (HasArrow (TerminalProfunctor :: k -> j -> Type) a b => r) -> r Source Comments #

HasInitialObject k => HasColimits (Unweighted :: VOID -> () -> Type) k Source Comments # 
Instance details

Defined in Proarrow.Category.Colimit

Methods

colimit :: forall (d :: VOID +-> k). Representable d => (d :.: (Unweighted :: VOID -> () -> Type)) :~> Colimit (Unweighted :: VOID -> () -> Type) d Source Comments #

colimitUniv :: forall (d :: VOID +-> k) (p :: () +-> k). (Representable d, Representable p) => ((d :.: (Unweighted :: VOID -> () -> Type)) :~> p) -> Colimit (Unweighted :: VOID -> () -> Type) d :~> p Source Comments #

HasTerminalObject k => HasLimits (Unweighted :: () -> VOID -> Type) k Source Comments # 
Instance details

Defined in Proarrow.Category.Limit

Methods

limit :: forall (d :: VOID +-> k). Representable d => (Limit (Unweighted :: () -> VOID -> Type) d :.: (Unweighted :: () -> VOID -> Type)) :~> d Source Comments #

limitUniv :: forall (d :: VOID +-> k) (p :: () +-> k). (Representable d, Representable p) => ((p :.: (Unweighted :: () -> VOID -> Type)) :~> d) -> p :~> Limit (Unweighted :: () -> VOID -> Type) d Source Comments #

CategoryOf k => DaggerProfunctor (TerminalProfunctor :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Terminal

Methods

dagger :: forall (a :: k) (b :: k). TerminalProfunctor a b -> TerminalProfunctor b a Source Comments #

HasBinaryProducts k => HasLimits (Unweighted :: () -> COPRODUCT () () -> Type) k Source Comments # 
Instance details

Defined in Proarrow.Category.Limit

Methods

limit :: forall (d :: COPRODUCT () () +-> k). Representable d => (Limit (Unweighted :: () -> COPRODUCT () () -> Type) d :.: (Unweighted :: () -> COPRODUCT () () -> Type)) :~> d Source Comments #

limitUniv :: forall (d :: COPRODUCT () () +-> k) (p :: () +-> k). (Representable d, Representable p) => ((p :.: (Unweighted :: () -> COPRODUCT () () -> Type)) :~> d) -> p :~> Limit (Unweighted :: () -> COPRODUCT () () -> Type) d Source Comments #

HasBinaryCoproducts k => HasColimits (Unweighted :: COPRODUCT () () -> () -> Type) k Source Comments # 
Instance details

Defined in Proarrow.Category.Colimit

Methods

colimit :: forall (d :: COPRODUCT () () +-> k). Representable d => (d :.: (Unweighted :: COPRODUCT () () -> () -> Type)) :~> Colimit (Unweighted :: COPRODUCT () () -> () -> Type) d Source Comments #

colimitUniv :: forall (d :: COPRODUCT () () +-> k) (p :: () +-> k). (Representable d, Representable p) => ((d :.: (Unweighted :: COPRODUCT () () -> () -> Type)) :~> p) -> Colimit (Unweighted :: COPRODUCT () () -> () -> Type) d :~> p Source Comments #

type Colimit (Unweighted :: VOID -> () -> Type) (d :: VOID +-> k) Source Comments # 
Instance details

Defined in Proarrow.Category.Colimit

type Colimit (Unweighted :: VOID -> () -> Type) (d :: VOID +-> k) = InitialLimit d
type Limit (Unweighted :: () -> VOID -> Type) (d :: VOID +-> k) Source Comments # 
Instance details

Defined in Proarrow.Category.Limit

type Limit (Unweighted :: () -> VOID -> Type) (d :: VOID +-> k) = TerminalLimit d
type HasArrow (TerminalProfunctor :: k -> j -> Type) (a :: k) (b :: j) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Terminal

type HasArrow (TerminalProfunctor :: k -> j -> Type) (a :: k) (b :: j) = ()
type Colimit (Unweighted :: COPRODUCT () () -> () -> Type) (d :: COPRODUCT () () +-> k) Source Comments # 
Instance details

Defined in Proarrow.Category.Colimit

type Colimit (Unweighted :: COPRODUCT () () -> () -> Type) (d :: COPRODUCT () () +-> k) = CoproductColimit d
type Limit (Unweighted :: () -> COPRODUCT () () -> Type) (d :: COPRODUCT () () +-> k) Source Comments # 
Instance details

Defined in Proarrow.Category.Limit

type Limit (Unweighted :: () -> COPRODUCT () () -> Type) (d :: COPRODUCT () () +-> k) = ProductLimit d