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

Proarrow.Category.Instance.Unit

Documentation

data UNIT Source Comments #

Constructors

U 

Instances

Instances details
Monoidal UNIT Source Comments # 
Instance details

Defined in Proarrow.Object.BinaryProduct

Associated Types

type Unit 
Instance details

Defined in Proarrow.Object.BinaryProduct

type (a :: UNIT) ** (b :: UNIT) 
Instance details

Defined in Proarrow.Object.BinaryProduct

type (a :: UNIT) ** (b :: UNIT) = a && b

Methods

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

leftUnitor :: forall (a :: UNIT). Obj a -> ((Unit :: UNIT) ** a) ~> a Source Comments #

leftUnitorInv :: forall (a :: UNIT). Obj a -> a ~> ((Unit :: UNIT) ** a) Source Comments #

rightUnitor :: forall (a :: UNIT). Obj a -> (a ** (Unit :: UNIT)) ~> a Source Comments #

rightUnitorInv :: forall (a :: UNIT). Obj a -> a ~> (a ** (Unit :: UNIT)) Source Comments #

associator :: forall (a :: UNIT) (b :: UNIT) (c :: UNIT). Obj a -> Obj b -> Obj c -> ((a ** b) ** c) ~> (a ** (b ** c)) Source Comments #

associatorInv :: forall (a :: UNIT) (b :: UNIT) (c :: UNIT). Obj a -> Obj b -> Obj c -> (a ** (b ** c)) ~> ((a ** b) ** c) Source Comments #

SymMonoidal UNIT Source Comments # 
Instance details

Defined in Proarrow.Object.BinaryProduct

Methods

swap' :: forall (a :: UNIT) (b :: UNIT). Obj a -> Obj b -> (a ** b) ~> (b ** a) Source Comments #

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

Defined in Proarrow.Object.BinaryCoproduct

Associated Types

type 'U || 'U 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

type 'U || 'U = 'U

Methods

lft' :: forall (a :: UNIT) (b :: UNIT). Obj a -> Obj b -> a ~> (a || b) Source Comments #

rgt' :: forall (a :: UNIT) (b :: UNIT). Obj a -> Obj b -> b ~> (a || b) Source Comments #

(|||) :: forall (x :: UNIT) (a :: UNIT) (y :: UNIT). (x ~> a) -> (y ~> a) -> (x || y) ~> a Source Comments #

(+++) :: forall (a :: UNIT) (b :: UNIT) (x :: UNIT) (y :: UNIT). (a ~> x) -> (b ~> y) -> (a || b) ~> (x || y) Source Comments #

HasBinaryProducts UNIT Source Comments # 
Instance details

Defined in Proarrow.Object.BinaryProduct

Associated Types

type 'U && 'U 
Instance details

Defined in Proarrow.Object.BinaryProduct

type 'U && 'U = 'U

Methods

fst' :: forall (a :: UNIT) (b :: UNIT). Obj a -> Obj b -> (a && b) ~> a Source Comments #

snd' :: forall (a :: UNIT) (b :: UNIT). Obj a -> Obj b -> (a && b) ~> b Source Comments #

(&&&) :: forall (a :: UNIT) (x :: UNIT) (y :: UNIT). (a ~> x) -> (a ~> y) -> a ~> (x && y) Source Comments #

(***) :: forall (a :: UNIT) (b :: UNIT) (x :: UNIT) (y :: UNIT). (a ~> x) -> (b ~> y) -> (a && b) ~> (x && y) Source Comments #

Closed UNIT Source Comments # 
Instance details

Defined in Proarrow.Object.Exponential

Associated Types

type 'U ~~> 'U 
Instance details

Defined in Proarrow.Object.Exponential

type 'U ~~> 'U = 'U

Methods

curry' :: forall (a :: UNIT) (b :: UNIT) (c :: UNIT). Obj a -> Obj b -> ((a ** b) ~> c) -> a ~> (b ~~> c) Source Comments #

uncurry' :: forall (b :: UNIT) (c :: UNIT) (a :: UNIT). Obj b -> Obj c -> (a ~> (b ~~> c)) -> (a ** b) ~> c Source Comments #

(^^^) :: forall (b :: UNIT) (y :: UNIT) (x :: UNIT) (a :: UNIT). (b ~> y) -> (x ~> a) -> (a ~~> b) ~> (x ~~> y) Source Comments #

HasInitialObject UNIT Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Unit

Associated Types

type InitialObject 
Instance details

Defined in Proarrow.Category.Instance.Unit

Methods

initiate' :: forall (a :: UNIT). Obj a -> (InitialObject :: UNIT) ~> a Source Comments #

HasTerminalObject UNIT Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Unit

Associated Types

type TerminalObject 
Instance details

Defined in Proarrow.Category.Instance.Unit

Methods

terminate' :: forall (a :: UNIT). Obj a -> a ~> (TerminalObject :: UNIT) 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 #

MonoidalProfunctor Unit Source Comments # 
Instance details

Defined in Proarrow.Object.BinaryProduct

Methods

lift0 :: Unit (Unit :: UNIT) (Unit :: UNIT) Source Comments #

lift2 :: forall (x1 :: UNIT) (x2 :: UNIT) (y1 :: UNIT) (y2 :: UNIT). Unit x1 x2 -> Unit y1 y2 -> Unit (x1 ** y1) (x2 ** y2) 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 #

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 #

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 #

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

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

Defined in Proarrow.Category.Colimit

Methods

coindex :: forall (a :: UNIT) (b :: k). CoproductColimit d a b -> (CoproductColimit d %% a) ~> b Source Comments #

cotabulate :: forall (a :: UNIT) (b :: k). Ob a => ((CoproductColimit d %% a) ~> b) -> CoproductColimit d a b Source Comments #

corepMap :: forall (a :: UNIT) (b :: UNIT). (a ~> b) -> (CoproductColimit d %% a) ~> (CoproductColimit d %% b) Source Comments #

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

Defined in Proarrow.Category.Colimit

Methods

coindex :: forall (a :: UNIT) (b :: k). InitialLimit d a b -> (InitialLimit d %% a) ~> b Source Comments #

cotabulate :: forall (a :: UNIT) (b :: k). Ob a => ((InitialLimit d %% a) ~> b) -> InitialLimit d a b Source Comments #

corepMap :: forall (a :: UNIT) (b :: UNIT). (a ~> b) -> (InitialLimit d %% a) ~> (InitialLimit d %% b) Source Comments #

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

Defined in Proarrow.Category.Limit

Methods

index :: forall a (b :: UNIT). EndLimit d a b -> a ~> (EndLimit d % b) Source Comments #

tabulate :: forall (b :: UNIT) a. Ob b => (a ~> (EndLimit d % b)) -> EndLimit d a b Source Comments #

repMap :: forall (a :: UNIT) (b :: UNIT). (a ~> b) -> (EndLimit d % a) ~> (EndLimit d % b) Source Comments #

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

Defined in Proarrow.Category.Limit

Methods

index :: forall (a :: k) (b :: UNIT). ProductLimit d a b -> a ~> (ProductLimit d % b) Source Comments #

tabulate :: forall (b :: UNIT) (a :: k). Ob b => (a ~> (ProductLimit d % b)) -> ProductLimit d a b Source Comments #

repMap :: forall (a :: UNIT) (b :: UNIT). (a ~> b) -> (ProductLimit d % a) ~> (ProductLimit d % b) Source Comments #

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

Defined in Proarrow.Category.Limit

Methods

index :: forall (a :: k) (b :: UNIT). TerminalLimit d a b -> a ~> (TerminalLimit d % b) Source Comments #

tabulate :: forall (b :: UNIT) (a :: k). Ob b => (a ~> (TerminalLimit d % b)) -> TerminalLimit d a b Source Comments #

repMap :: forall (a :: UNIT) (b :: UNIT). (a ~> b) -> (TerminalLimit d % a) ~> (TerminalLimit d % b) Source Comments #

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

Defined in Proarrow.Category.Colimit

Methods

colimit :: forall (d :: PRO VOID k). Corepresentable d => Colimit (Unweighted :: VOID -> UNIT -> Type) d :~> ((Unweighted :: VOID -> UNIT -> Type) |> d) Source Comments #

colimitInv :: forall (d :: PRO VOID k). Corepresentable d => ((Unweighted :: VOID -> UNIT -> Type) |> d) :~> Colimit (Unweighted :: VOID -> UNIT -> Type) d Source Comments #

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

Defined in Proarrow.Category.Limit

Methods

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

limitInv :: forall (d :: PRO k VOID). Representable d => (d <| (Unweighted :: UNIT -> VOID -> Type)) :~> Limit (Unweighted :: UNIT -> VOID -> Type) d 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 #

CategoryOf k => HasLimits (Hom :: UNIT -> (OPPOSITE k, k) -> Type) Type Source Comments # 
Instance details

Defined in Proarrow.Category.Limit

Methods

limit :: forall (d :: PRO Type (OPPOSITE k, k)). Representable d => Limit (Hom :: UNIT -> (OPPOSITE k, k) -> Type) d :~> (d <| (Hom :: UNIT -> (OPPOSITE k, k) -> Type)) Source Comments #

limitInv :: forall (d :: PRO Type (OPPOSITE k, k)). Representable d => (d <| (Hom :: UNIT -> (OPPOSITE k, k) -> Type)) :~> Limit (Hom :: UNIT -> (OPPOSITE k, k) -> Type) d Source Comments #

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

Defined in Proarrow.Category.Limit

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

Defined in Proarrow.Category.Colimit

type Unit Source Comments # 
Instance details

Defined in Proarrow.Object.BinaryProduct

type (~>) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Unit

type (~>) = Unit
type InitialObject Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Unit

type TerminalObject Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Unit

type Ob (a :: UNIT) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Unit

type Ob (a :: UNIT) = a ~ 'U
type (a :: UNIT) ** (b :: UNIT) Source Comments # 
Instance details

Defined in Proarrow.Object.BinaryProduct

type (a :: UNIT) ** (b :: UNIT) = a && b
type 'U || 'U Source Comments # 
Instance details

Defined in Proarrow.Object.BinaryCoproduct

type 'U || 'U = 'U
type 'U && 'U Source Comments # 
Instance details

Defined in Proarrow.Object.BinaryProduct

type 'U && 'U = 'U
type 'U ~~> 'U Source Comments # 
Instance details

Defined in Proarrow.Object.Exponential

type 'U ~~> 'U = 'U
type Colimit (Unweighted :: VOID -> UNIT -> Type) (d :: PRO VOID k) Source Comments # 
Instance details

Defined in Proarrow.Category.Colimit

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

Defined in Proarrow.Category.Limit

type Limit (Unweighted :: UNIT -> VOID -> Type) (d :: PRO k VOID) = TerminalLimit d
type (CoproductColimit d :: UNIT -> k -> Type) %% 'U Source Comments # 
Instance details

Defined in Proarrow.Category.Colimit

type (CoproductColimit d :: UNIT -> k -> Type) %% 'U = (d %% ('L 'U :: COPRODUCT UNIT UNIT)) || (d %% ('R 'U :: COPRODUCT UNIT UNIT))
type (InitialLimit d :: UNIT -> k -> Type) %% 'U Source Comments # 
Instance details

Defined in Proarrow.Category.Colimit

type (InitialLimit d :: UNIT -> k -> Type) %% 'U = InitialObject :: k
type (EndLimit d :: Type -> UNIT -> Type) % 'U Source Comments # 
Instance details

Defined in Proarrow.Category.Limit

type (EndLimit d :: Type -> UNIT -> Type) % 'U = End d
type (ProductLimit d :: k -> UNIT -> Type) % 'U Source Comments # 
Instance details

Defined in Proarrow.Category.Limit

type (ProductLimit d :: k -> UNIT -> Type) % 'U = (d % ('L 'U :: COPRODUCT UNIT UNIT)) && (d % ('R 'U :: COPRODUCT UNIT UNIT))
type (TerminalLimit d :: k -> UNIT -> Type) % 'U Source Comments # 
Instance details

Defined in Proarrow.Category.Limit

type (TerminalLimit d :: k -> UNIT -> Type) % 'U = TerminalObject :: k
type Limit (Hom :: UNIT -> (OPPOSITE k, k) -> Type) (d :: PRO Type (OPPOSITE k, k)) Source Comments # 
Instance details

Defined in Proarrow.Category.Limit

type Limit (Hom :: UNIT -> (OPPOSITE k, k) -> Type) (d :: PRO Type (OPPOSITE k, k)) = EndLimit d
type Limit (Unweighted :: UNIT -> COPRODUCT UNIT UNIT -> Type) (d :: PRO k (COPRODUCT UNIT UNIT)) Source Comments # 
Instance details

Defined in Proarrow.Category.Limit

type Colimit (Unweighted :: COPRODUCT UNIT UNIT -> UNIT -> Type) (d :: PRO (COPRODUCT UNIT UNIT) k) Source Comments # 
Instance details

Defined in Proarrow.Category.Colimit

data Unit (a :: UNIT) (b :: UNIT) where Source Comments #

Constructors

Unit :: Unit 'U 'U 

Instances

Instances details
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 #

MonoidalProfunctor Unit Source Comments # 
Instance details

Defined in Proarrow.Object.BinaryProduct

Methods

lift0 :: Unit (Unit :: UNIT) (Unit :: UNIT) Source Comments #

lift2 :: forall (x1 :: UNIT) (x2 :: UNIT) (y1 :: UNIT) (y2 :: UNIT). Unit x1 x2 -> Unit y1 y2 -> Unit (x1 ** y1) (x2 ** y2) 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 #