Copyright | (C) 2007-2015 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
- 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 k k1 => Semigroupoid k (Iso k k1) Source # | |
Semigroup m => Semigroupoid k (Semi k k m) Source # | |
Category k k1 => Semigroupoid k (WrappedCategory k k k1) Source # | |
Semigroupoid k k1 => Semigroupoid k (Dual k k k1) Source # | |
Semigroupoid * (->) Source # | |
Semigroupoid * (,) Source # | http://en.wikipedia.org/wiki/Band_(mathematics)#Rectangular_bands |
Semigroupoid * Op Source # | |
Bind m => Semigroupoid * (Kleisli m) Source # | |
Semigroupoid * (Const *) Source # | |
Extend w => Semigroupoid * (Cokleisli w) Source # | |
Semigroupoid * (Tagged *) Source # | |
Apply f => Semigroupoid * (Static f) Source # | |
newtype WrappedCategory k a b Source #
WrapCategory | |
|
Category k k1 => Category k (WrappedCategory k k k1) Source # | |
Category k k1 => Semigroupoid k (WrappedCategory k k k1) Source # | |