categories-1.0.7: Categories
Copyright2010-2012 Edward Kmett
LicenseBSD
MaintainerEdward Kmett <ekmett@gmail.com>
Stabilityexperimental
Portabilitynon-portable (either class-associated types or MPTCs with fundeps)
Safe HaskellSafe-Inferred
LanguageHaskell2010

Control.Categorical.Object

Description

This module declares the HasTerminalObject and HasInitialObject classes.

These are both special cases of the idea of a (co)limit.

Synopsis

Documentation

class Category k => HasTerminalObject (k :: Type -> Type -> Type) where Source #

The Category (~>) has a terminal object Terminal (~>) such that for all objects a in (~>), there exists a unique morphism from a to Terminal (~>).

Associated Types

type Terminal (k :: Type -> Type -> Type) Source #

Methods

terminate :: k a (Terminal k) Source #

class Category k => HasInitialObject (k :: Type -> Type -> Type) where Source #

The Category (~>) has an initial (coterminal) object Initial (~>) such that for all objects a in (~>), there exists a unique morphism from Initial (~>) to a.

Associated Types

type Initial (k :: Type -> Type -> Type) Source #

Methods

initiate :: k (Initial k) a Source #