semigroupoids-6.0.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 HaskellTrustworthy
LanguageHaskell2010

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 :: k -> k -> Type) where Source #

Methods

o :: forall (j :: k) (k1 :: k) (i :: k). c j k1 -> c i j -> c i k1 Source #

Instances

Instances details
Semigroupoid Op Source # 
Instance details

Defined in Data.Semigroupoid

Methods

o :: Op j k1 -> Op i j -> Op i k1 Source #

Semigroupoid (,) Source #

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

Instance details

Defined in Data.Semigroupoid

Methods

o :: (j, k1) -> (i, j) -> (i, k1) Source #

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

Defined in Data.Semigroupoid

Methods

o :: Kleisli m j k1 -> Kleisli m i j -> Kleisli m i k1 Source #

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

Defined in Data.Semigroupoid

Methods

o :: Const j k1 -> Const i j -> Const i k1 Source #

Semigroupoid s => Semigroupoid (Categorical s :: Type -> Type -> Type) Source #

Since: 5.3.6

Instance details

Defined in Data.Semigroupoid.Categorical

Methods

o :: Categorical s j k1 -> Categorical s i j -> Categorical s i k1 Source #

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

Defined in Data.Semigroupoid.Static

Methods

o :: Static f j k1 -> Static f i j -> Static f i k1 Source #

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

Defined in Data.Semigroupoid

Methods

o :: Tagged j k1 -> Tagged i j -> Tagged i k1 Source #

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

Defined in Data.Semigroupoid

Methods

o :: forall (j :: k) (k1 :: k) (i :: k). Coercion j k1 -> Coercion i j -> Coercion i k1 Source #

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

Defined in Data.Semigroupoid

Methods

o :: forall (j :: k) (k1 :: k) (i :: k). (j :~: k1) -> (i :~: j) -> i :~: k1 Source #

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

Defined in Data.Semigroupoid

Methods

o :: Cokleisli w j k1 -> Cokleisli w i j -> Cokleisli w i k1 Source #

Semigroupoid (->) Source # 
Instance details

Defined in Data.Semigroupoid

Methods

o :: (j -> k1) -> (i -> j) -> i -> k1 Source #

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

Defined in Data.Semigroupoid

Methods

o :: forall (j :: k) (k1 :: k) (i :: k). (j :~~: k1) -> (i :~~: j) -> i :~~: k1 Source #

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

Defined in Data.Isomorphism

Methods

o :: forall (j :: k1) (k10 :: k1) (i :: k1). Iso k2 j k10 -> Iso k2 i j -> Iso k2 i k10 Source #

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

Defined in Data.Semigroupoid

Methods

o :: forall (j :: k) (k1 :: k) (i :: k). Semi m j k1 -> Semi m i j -> Semi m i k1 Source #

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

Defined in Data.Semigroupoid

Methods

o :: forall (j :: k1) (k10 :: k1) (i :: k1). WrappedCategory k2 j k10 -> WrappedCategory k2 i j -> WrappedCategory k2 i k10 Source #

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

Defined in Data.Semigroupoid.Dual

Methods

o :: forall (j :: k1) (k10 :: k1) (i :: k1). Dual k2 j k10 -> Dual k2 i j -> Dual k2 i k10 Source #

newtype WrappedCategory (k2 :: k -> k1 -> Type) (a :: k) (b :: k1) Source #

Constructors

WrapCategory 

Fields

Instances

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

Defined in Data.Semigroupoid

Methods

id :: forall (a :: k1). WrappedCategory k2 a a #

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

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

Defined in Data.Semigroupoid

Methods

o :: forall (j :: k1) (k10 :: k1) (i :: k1). WrappedCategory k2 j k10 -> WrappedCategory k2 i j -> WrappedCategory k2 i k10 Source #

newtype Semi m (a :: k) (b :: k1) Source #

Constructors

Semi 

Fields

Instances

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

Defined in Data.Semigroupoid

Methods

id :: forall (a :: k). Semi m a a #

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

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

Defined in Data.Semigroupoid

Methods

o :: forall (j :: k) (k1 :: k) (i :: k). Semi m j k1 -> Semi m i j -> Semi m i k1 Source #