Copyright | (C) 2007-2011 Edward Kmett |
---|---|
License | BSD-style (see the file LICENSE) |
Maintainer | Edward Kmett <ekmett@gmail.com> |
Stability | provisional |
Portability | portable |
Safe Haskell | Safe |
Language | Haskell98 |
A semigroupoid satisfies all of the requirements to be a Category except for the existence of identity arrows.
- 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 Source
Semigroupoid (->) | |
Semigroupoid (,) | http://en.wikipedia.org/wiki/Band_(mathematics)#Rectangular_bands |
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) | |
Semigroupoid k => Semigroupoid (Iso k) | |
Apply f => Semigroupoid (Static f) | |
(Semigroupoid j, Semigroupoid k) => Semigroupoid (Product j k) | |
(Semigroupoid j, Semigroupoid k) => Semigroupoid (Coproduct j k) |
newtype WrappedCategory k a b Source
WrapCategory | |
|
Category * k => Category * (WrappedCategory k) | |
Category * k => Semigroupoid (WrappedCategory k) |