Portability | non-portable (either class-associated types or MPTCs with fundeps) |
---|---|
Stability | experimental |
Maintainer | Edward Kmett <ekmett@gmail.com> |
Control.Categorical.Object
Description
This module declares the HasTerminalObject
and HasInitialObject
classes.
These are both special cases of the idea of a (co)limit.
- class Category ~> => HasTerminalObject (~>) where
- class Category ~> => HasInitialObject (~>) where
Documentation
class Category ~> => HasTerminalObject (~>) where
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 (~>) :: *
class Category ~> => HasInitialObject (~>) where
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 (~>) :: *