Copyright | 2010-2012 Edward Kmett |
---|---|

License | BSD |

Maintainer | Edward Kmett <ekmett@gmail.com> |

Stability | experimental |

Portability | non-portable (either class-associated types or MPTCs with fundeps) |

Safe Haskell | Safe-Inferred |

Language | Haskell2010 |

This module declares the `HasTerminalObject`

and `HasInitialObject`

classes.

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

- class Category k => HasTerminalObject k where
- class Category k => HasInitialObject k where

# Documentation

class Category k => HasTerminalObject k 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 (~>)`

.