semigroupoids-5.3.2: Semigroupoids: Category sans id

Copyright(C) 2007-2015 Edward Kmett
LicenseBSD-style (see the file LICENSE)
MaintainerEdward Kmett <ekmett@gmail.com>
Stabilityprovisional
Portabilityportable
Safe HaskellNone
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 #

Methods

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

Instances
Semigroupoid ((:~:) :: k -> k -> Type) # 
Instance details

Defined in Data.Semigroupoid

Methods

o :: (j :~: k0) -> (i :~: j) -> i :~: k0 #

Semigroupoid (Coercion :: k -> k -> Type) # 
Instance details

Defined in Data.Semigroupoid

Methods

o :: Coercion j k0 -> Coercion i j -> Coercion i k0 #

Semigroupoid ((:~~:) :: k -> k -> Type) # 
Instance details

Defined in Data.Semigroupoid

Methods

o :: (j :~~: k0) -> (i :~~: j) -> i :~~: k0 #

Semigroupoid k2 => Semigroupoid (Iso k2 :: k1 -> k1 -> Type) # 
Instance details

Defined in Data.Isomorphism

Methods

o :: Iso k2 j k -> Iso k2 i j -> Iso k2 i k #

Category k2 => Semigroupoid (WrappedCategory k2 :: k1 -> k1 -> Type) # 
Instance details

Defined in Data.Semigroupoid

Methods

o :: WrappedCategory k2 j k -> WrappedCategory k2 i j -> WrappedCategory k2 i k #

Semigroup m => Semigroupoid (Semi m :: k -> k -> Type) # 
Instance details

Defined in Data.Semigroupoid

Methods

o :: Semi m j k0 -> Semi m i j -> Semi m i k0 #

Semigroupoid k2 => Semigroupoid (Dual k2 :: k1 -> k1 -> Type) # 
Instance details

Defined in Data.Semigroupoid.Dual

Methods

o :: Dual k2 j k -> Dual k2 i j -> Dual k2 i k #

Semigroupoid (,) #

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

Instance details

Defined in Data.Semigroupoid

Methods

o :: (j, k) -> (i, j) -> (i, k) #

Semigroupoid Op # 
Instance details

Defined in Data.Semigroupoid

Methods

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

Bind m => Semigroupoid (Kleisli m :: Type -> Type -> Type) # 
Instance details

Defined in Data.Semigroupoid

Methods

o :: Kleisli m j k -> Kleisli m i j -> Kleisli m i k #

Semigroupoid (Const :: Type -> Type -> Type) # 
Instance details

Defined in Data.Semigroupoid

Methods

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

Semigroupoid (Tagged :: Type -> Type -> Type) # 
Instance details

Defined in Data.Semigroupoid

Methods

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

Apply f => Semigroupoid (Static f :: Type -> Type -> Type) # 
Instance details

Defined in Data.Semigroupoid.Static

Methods

o :: Static f j k -> Static f i j -> Static f i k #

Semigroupoid ((->) :: Type -> Type -> Type) # 
Instance details

Defined in Data.Semigroupoid

Methods

o :: (j -> k) -> (i -> j) -> i -> k #

Extend w => Semigroupoid (Cokleisli w :: Type -> Type -> Type) # 
Instance details

Defined in Data.Semigroupoid

Methods

o :: Cokleisli w j k -> Cokleisli w i j -> Cokleisli w i k #

newtype WrappedCategory k a b #

Constructors

WrapCategory 

Fields

Instances
Category k2 => Category (WrappedCategory k2 :: k1 -> k1 -> Type) # 
Instance details

Defined in Data.Semigroupoid

Methods

id :: WrappedCategory k2 a a #

(.) :: WrappedCategory k2 b c -> WrappedCategory k2 a b -> WrappedCategory k2 a c #

Category k2 => Semigroupoid (WrappedCategory k2 :: k1 -> k1 -> Type) # 
Instance details

Defined in Data.Semigroupoid

Methods

o :: WrappedCategory k2 j k -> WrappedCategory k2 i j -> WrappedCategory k2 i k #

newtype Semi m a b #

Constructors

Semi 

Fields

Instances
Monoid m => Category (Semi m :: k -> k -> Type) # 
Instance details

Defined in Data.Semigroupoid

Methods

id :: Semi m a a #

(.) :: Semi m b c -> Semi m a b -> Semi m a c #

Semigroup m => Semigroupoid (Semi m :: k -> k -> Type) # 
Instance details

Defined in Data.Semigroupoid

Methods

o :: Semi m j k0 -> Semi m i j -> Semi m i k0 #