semigroupoids-5.1: Semigroupoids: Category sans id

Copyright(C) 2007-2015 Edward Kmett
LicenseBSD-style (see the file LICENSE)
MaintainerEdward Kmett <ekmett@gmail.com>
Stabilityprovisional
Portabilityportable
Safe HaskellSafe
LanguageHaskell98

Data.Semigroupoid

Description

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

Synopsis

Documentation

class Semigroupoid c where #

Minimal complete definition

o

Methods

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

Instances

Semigroupoid k k1 => Semigroupoid k (Iso k k1) # 

Methods

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

Semigroup m => Semigroupoid k (Semi k k m) # 

Methods

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

Category k k1 => Semigroupoid k (WrappedCategory k k k1) # 

Methods

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

Semigroupoid k k1 => Semigroupoid k (Dual k k k1) # 

Methods

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

Semigroupoid * (->) # 

Methods

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

Semigroupoid * (,) #

http://en.wikipedia.org/wiki/Band_(mathematics)#Rectangular_bands

Methods

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

Semigroupoid * Op # 

Methods

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

Bind m => Semigroupoid * (Kleisli m) # 

Methods

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

Extend w => Semigroupoid * (Cokleisli w) # 

Methods

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

Apply f => Semigroupoid * (Static f) # 

Methods

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

newtype WrappedCategory k a b #

Constructors

WrapCategory 

Fields

Instances

Category k k1 => Category k (WrappedCategory k k k1) # 

Methods

id :: cat a a #

(.) :: cat b c -> cat a b -> cat a c #

Category k k1 => Semigroupoid k (WrappedCategory k k k1) # 

Methods

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

newtype Semi m a b #

Constructors

Semi 

Fields

Instances

Monoid m => Category k (Semi k k m) # 

Methods

id :: cat a a #

(.) :: cat b c -> cat a b -> cat a c #

Semigroup m => Semigroupoid k (Semi k k m) # 

Methods

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