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

Minimal complete definition

o

Methods

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

Instances

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

Methods

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

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

Methods

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

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

Methods

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

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

Methods

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

Semigroupoid * (->) Source # 

Methods

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

Semigroupoid * (,) Source #

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

Methods

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

Semigroupoid * Op Source # 

Methods

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

Bind m => Semigroupoid * (Kleisli m) Source # 

Methods

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

Extend w => Semigroupoid * (Cokleisli w) Source # 

Methods

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

Apply f => Semigroupoid * (Static f) Source # 

Methods

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

newtype WrappedCategory k a b Source #

Constructors

WrapCategory 

Fields

Instances

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

Methods

id :: cat a a #

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

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

Methods

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

newtype Semi m a b Source #

Constructors

Semi 

Fields

Instances

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

Methods

id :: cat a a #

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

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

Methods

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