proarrow
Safe HaskellNone
LanguageGHC2024

Proarrow.Object.Terminal

Synopsis

Documentation

class (CategoryOf k, Ob (TerminalObject :: k)) => HasTerminalObject k where Source Comments #

Associated Types

type TerminalObject :: k Source Comments #

Methods

terminate :: forall (a :: k). Ob a => a ~> (TerminalObject :: k) Source Comments #

Instances

Instances details
HasTerminalObject BOOL Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Bool

Associated Types

type TerminalObject 
Instance details

Defined in Proarrow.Category.Instance.Bool

Methods

terminate :: forall (a :: BOOL). Ob a => a ~> (TerminalObject :: BOOL) Source Comments #

HasTerminalObject KIND Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Associated Types

type TerminalObject 
Instance details

Defined in Proarrow.Category.Instance.Cat

type TerminalObject = 'K ()

Methods

terminate :: forall (a :: KIND). Ob a => a ~> (TerminalObject :: KIND) Source Comments #

HasTerminalObject CONSTRAINT Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Constraint

Associated Types

type TerminalObject 
Instance details

Defined in Proarrow.Category.Instance.Constraint

Methods

terminate :: forall (a :: CONSTRAINT). Ob a => a ~> (TerminalObject :: CONSTRAINT) Source Comments #

HasTerminalObject COST Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cost

Associated Types

type TerminalObject 
Instance details

Defined in Proarrow.Category.Instance.Cost

type TerminalObject = 'C 0

Methods

terminate :: forall (a :: COST). Ob a => a ~> (TerminalObject :: COST) Source Comments #

HasTerminalObject LINEAR Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Linear

Associated Types

type TerminalObject 
Instance details

Defined in Proarrow.Category.Instance.Linear

Methods

terminate :: forall (a :: LINEAR). Ob a => a ~> (TerminalObject :: LINEAR) Source Comments #

HasTerminalObject POINTED Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Associated Types

type TerminalObject 
Instance details

Defined in Proarrow.Category.Instance.PointedHask

Methods

terminate :: forall (a :: POINTED). Ob a => a ~> (TerminalObject :: POINTED) Source Comments #

HasTerminalObject Nat Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Simplex

Associated Types

type TerminalObject 
Instance details

Defined in Proarrow.Category.Instance.Simplex

type TerminalObject = 'S 'Z

Methods

terminate :: forall (a :: Nat). Ob a => a ~> (TerminalObject :: Nat) Source Comments #

HasTerminalObject () Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Unit

Associated Types

type TerminalObject 
Instance details

Defined in Proarrow.Category.Instance.Unit

type TerminalObject = '()

Methods

terminate :: forall (a :: ()). Ob a => a ~> (TerminalObject :: ()) Source Comments #

HasTerminalObject Type Source Comments # 
Instance details

Defined in Proarrow.Object.Terminal

Associated Types

type TerminalObject 
Instance details

Defined in Proarrow.Object.Terminal

type TerminalObject = ()
HasTerminalObject (FIN ('S n)) => HasTerminalObject (FIN ('S ('S n))) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Fin

Associated Types

type TerminalObject 
Instance details

Defined in Proarrow.Category.Instance.Fin

Methods

terminate :: forall (a :: FIN ('S ('S n))). Ob a => a ~> (TerminalObject :: FIN ('S ('S n))) Source Comments #

HasTerminalObject (FIN ('S 'Z)) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Fin

Associated Types

type TerminalObject 
Instance details

Defined in Proarrow.Category.Instance.Fin

type TerminalObject = 'FZ :: FIN ('S 'Z)

Methods

terminate :: forall (a :: FIN ('S 'Z)). Ob a => a ~> (TerminalObject :: FIN ('S 'Z)) Source Comments #

Num a => HasTerminalObject (MatK a) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Mat

Associated Types

type TerminalObject 
Instance details

Defined in Proarrow.Category.Instance.Mat

type TerminalObject = 'M 'Z :: MatK a

Methods

terminate :: forall (a0 :: MatK a). Ob a0 => a0 ~> (TerminalObject :: MatK a) Source Comments #

HasInitialObject k => HasTerminalObject (OPPOSITE k) Source Comments # 
Instance details

Defined in Proarrow.Category.Opposite

Associated Types

type TerminalObject 
Instance details

Defined in Proarrow.Category.Opposite

Methods

terminate :: forall (a :: OPPOSITE k). Ob a => a ~> (TerminalObject :: OPPOSITE k) Source Comments #

HasTerminalObject k => HasTerminalObject (PROD k) Source Comments # 
Instance details

Defined in Proarrow.Object.BinaryProduct

Associated Types

type TerminalObject 
Instance details

Defined in Proarrow.Object.BinaryProduct

Methods

terminate :: forall (a :: PROD k). Ob a => a ~> (TerminalObject :: PROD k) Source Comments #

(Applicative f, HasTerminalObject k) => HasTerminalObject (AP f k) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Ap

Associated Types

type TerminalObject 
Instance details

Defined in Proarrow.Category.Instance.Ap

type TerminalObject = 'A (TerminalObject :: k) :: AP f k

Methods

terminate :: forall (a :: AP f k). Ob a => a ~> (TerminalObject :: AP f k) Source Comments #

(HasTerminalObject k, Promonad p) => HasTerminalObject (KLEISLI p) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Kleisli

Associated Types

type TerminalObject 
Instance details

Defined in Proarrow.Category.Instance.Kleisli

Methods

terminate :: forall (a :: KLEISLI p). Ob a => a ~> (TerminalObject :: KLEISLI p) Source Comments #

(CategoryOf j, CategoryOf k) => HasTerminalObject (j +-> k) Source Comments # 
Instance details

Defined in Proarrow.Object.Terminal

Associated Types

type TerminalObject 
Instance details

Defined in Proarrow.Object.Terminal

Methods

terminate :: forall (a :: j +-> k). Ob a => a ~> (TerminalObject :: j +-> k) Source Comments #

Monoid m => HasTerminalObject (MONOIDK m) Source Comments # 
Instance details

Defined in Proarrow.Monoid

Associated Types

type TerminalObject 
Instance details

Defined in Proarrow.Monoid

type TerminalObject = 'M :: MONOIDK m

Methods

terminate :: forall (a :: MONOIDK m). Ob a => a ~> (TerminalObject :: MONOIDK m) Source Comments #

(HasTerminalObject j, HasTerminalObject k) => HasTerminalObject (j, k) Source Comments # 
Instance details

Defined in Proarrow.Object.Terminal

Associated Types

type TerminalObject 
Instance details

Defined in Proarrow.Object.Terminal

Methods

terminate :: forall (a :: (j, k)). Ob a => a ~> (TerminalObject :: (j, k)) Source Comments #

CategoryOf k1 => HasTerminalObject (k1 -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Nat

Associated Types

type TerminalObject 
Instance details

Defined in Proarrow.Category.Instance.Nat

type TerminalObject = Const () :: k1 -> Type

Methods

terminate :: forall (a :: k1 -> Type). Ob a => a ~> (TerminalObject :: k1 -> Type) Source Comments #

(HasTerminalObject k, CategoryOf j, CodiscreteProfunctor p) => HasTerminalObject (COLLAGE p) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Collage

Associated Types

type TerminalObject 
Instance details

Defined in Proarrow.Category.Instance.Collage

Methods

terminate :: forall (a :: COLLAGE p). Ob a => a ~> (TerminalObject :: COLLAGE p) Source Comments #

(Ok cs p, Elem HasTerminalObject cs) => HasTerminalObject (FREE cs p) Source Comments # 
Instance details

Defined in Proarrow.Object.Terminal

Associated Types

type TerminalObject 
Instance details

Defined in Proarrow.Object.Terminal

type TerminalObject = TermF :: FREE cs p

Methods

terminate :: forall (a :: FREE cs p). Ob a => a ~> (TerminalObject :: FREE cs p) Source Comments #

terminate' :: forall {k} (a :: k) (a' :: k). HasTerminalObject k => (a ~> a') -> a ~> (TerminalObject :: k) Source Comments #

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

The type of elements of a.

class ((Unit :: k) ~ (TerminalObject :: k), HasTerminalObject k, Monoidal k) => Semicartesian k Source Comments #

Instances

Instances details
((Unit :: k) ~ (TerminalObject :: k), HasTerminalObject k, Monoidal k) => Semicartesian k Source Comments # 
Instance details

Defined in Proarrow.Object.Terminal

data family TermF :: k Source Comments #

Instances

Instances details
Elem HasTerminalObject cs => IsFreeOb (TermF :: FREE cs p) Source Comments # 
Instance details

Defined in Proarrow.Object.Terminal

Methods

withLowerOb :: forall {k} (f :: j +-> k) r. (Representable f, All cs k) => (Ob (Lower f (TermF :: FREE cs p)) => r) -> r Source Comments #

type Lower (f :: j +-> k) (TermF :: FREE cs p) Source Comments # 
Instance details

Defined in Proarrow.Object.Terminal

type Lower (f :: j +-> k) (TermF :: FREE cs p) = TerminalObject :: k