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

Proarrow.Object.Terminal

Synopsis

Documentation

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

Minimal complete definition

Nothing

Associated Types

type TerminalObject :: k Source Comments #

Methods

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

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

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

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

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

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

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

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

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

terminate' :: forall (a :: FIN ('S ('S n))) (a' :: FIN ('S ('S n))). (a ~> 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 #

terminate' :: forall (a :: FIN ('S 'Z)) (a' :: FIN ('S 'Z)). (a ~> 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 #

terminate' :: forall (a0 :: MatK a) (a' :: MatK a). (a0 ~> a') -> a0 ~> (TerminalObject :: MatK a) Source Comments #

HasTerminalObject (POCATK Constraint) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.PreorderAsCategory

Associated Types

type TerminalObject 
Instance details

Defined in Proarrow.Category.Instance.PreorderAsCategory

type TerminalObject = 'PC ()
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 #

terminate' :: forall (a :: OPPOSITE k) (a' :: OPPOSITE k). (a ~> a') -> a ~> (TerminalObject :: OPPOSITE k) Source Comments #

BiCCC k => HasTerminalObject (FK k) Source Comments # 
Instance details

Defined in Proarrow.Helper.CCC

Associated Types

type TerminalObject 
Instance details

Defined in Proarrow.Helper.CCC

type TerminalObject = TermF :: FK k

Methods

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

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

terminate' :: forall (a :: PROD k) (a' :: PROD k). (a ~> a') -> a ~> (TerminalObject :: PROD k) Source Comments #

(CategoryOf j, CategoryOf k) => HasTerminalObject (PRO 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 :: PRO j k). Ob a => a ~> (TerminalObject :: PRO j k) Source Comments #

terminate' :: forall (a :: PRO j k) (a' :: PRO j k). (a ~> a') -> a ~> (TerminalObject :: PRO j k) 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 #

terminate' :: forall (a :: (j, k)) (a' :: (j, k)). (a ~> 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 #

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

(HasTerminalObject k, CategoryOf j, Codiscrete 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 #

terminate' :: forall (a :: COLLAGE p) (a' :: COLLAGE p). (a ~> a') -> a ~> (TerminalObject :: COLLAGE p) Source Comments #

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

The type of elements of a.