categories-1.0.7: Categories

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

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

- class Category k => HasTerminalObject (k :: Type -> Type -> Type) where
  - type Terminal (k :: Type -> Type -> Type)
  - terminate :: k a (Terminal k)
- class Category k => HasInitialObject (k :: Type -> Type -> Type) where
  - type Initial (k :: Type -> Type -> Type)
  - initiate :: k (Initial k) a

# 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 #