Data.Semigroupoid

semigroupoids-1.2.6: Haskell 98 semigroupoids: Category sans id

Portability | portable
Stability | provisional
Maintainer | Edward Kmett <ekmett@gmail.com>

Data.Semigroupoid

Description

A semigroupoid satisfies all of the requirements to be a Category except for the existence of identity arrows.

Synopsis

- class Semigroupoid c where
  - o :: c j k -> c i j -> c i k
- newtype WrappedCategory k a b = WrapCategory {
  - unwrapCategory :: k a b
  }
- newtype Semi m a b = Semi {
  - getSemi :: m
  }

# Documentation

class Semigroupoid c where

`Category` sans `id`

Methods

o :: c j k -> c i j -> c i k

Instances

Semigroupoid (->) |
Semigroupoid Op |
Bind m => Semigroupoid (Kleisli m) |
Extend w => Semigroupoid (Cokleisli w) |
Semigroup m => Semigroupoid (Semi m) |
Category k => Semigroupoid (WrappedCategory k) |
Semigroupoid k => Semigroupoid (Dual k) |
Apply f => Semigroupoid (Static f) |

newtype WrappedCategory k a b

Constructors

WrapCategory |
Fields unwrapCategory :: k a b

Instances

Category k => Category (WrappedCategory k) |
Category k => Semigroupoid (WrappedCategory k) |

newtype Semi m a b

Constructors

Semi |
Fields getSemi :: m

Instances

Monoid m => Category (Semi m) |
Semigroup m => Semigroupoid (Semi m) |