category-extras-0.53.3: Various modules and constructs inspired by category theory

Portabilitynon-portable (either class-associated types or MPTCs with fundeps)
Stabilityexperimental
MaintainerEdward Kmett <ekmett@gmail.com>

Control.Category.Object

Description

This module declares the HasTerminalObject and HasInitialObject classes. These are defined in terms of class-associated types rather than functional dependencies because most of the time when you are manipulating a category you don't care about them; this gets them out of the signature of most functions that use the category. Both of these are special cases of the idea of a (co)limit.

Synopsis

Documentation

class Category k => HasTerminalObject k t | k -> t whereSource

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

Methods

terminate :: k a tSource

class Category k => HasInitialObject k i | k -> i whereSource

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

Methods

initiate :: k i aSource