Module

Control.Semigroupoid

#Semigroupoid

class Semigroupoid a  where

A Semigroupoid is similar to a Category but does not require an identity element identity, just composable morphisms.

Semigroupoids must satisfy the following law:

  • Associativity: p <<< (q <<< r) = (p <<< q) <<< r

One example of a Semigroupoid is the function type constructor (->), with (<<<) defined as function composition.

Members

  • compose :: forall b c d. a c d -> a b c -> a b d

Instances

#(<<<)

Operator alias for Control.Semigroupoid.compose (right-associative / precedence 9)

#composeFlipped

composeFlipped :: forall a b c d. Semigroupoid a => a b c -> a c d -> a b d

Forwards composition, or compose with its arguments reversed.

#(>>>)

Operator alias for Control.Semigroupoid.composeFlipped (right-associative / precedence 9)