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

Stability | experimental |

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

Safe Haskell | Safe-Infered |

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 (~>) whereSource

The `Category (~>)`

has a terminal object `Terminal (~>)`

such that for all objects `a`

in `(~>)`

,
there exists a unique morphism from `a`

to `Terminal (~>)`

.