Control.Category

base-4.11.1.0: Basic libraries

Copyright | (c) Ashley Yakeley 2007
License | BSD-style (see the LICENSE file in the distribution)
Maintainer | ashley@semantic.org
Stability | experimental
Portability | portable
Safe Haskell | Trustworthy
Language | Haskell2010

Control.Category

Description

Synopsis

- class Category cat where
- (<<<) :: Category cat => cat b c -> cat a b -> cat a c
- (>>>) :: Category cat => cat a b -> cat b c -> cat a c

# Documentation

class Category cat where #

A class for categories. Instances should satisfy the laws

    f . id  =  f  -- (right identity)
    id . f  =  f  -- (left identity)
    f . (g . h)  =  (f . g) . h  -- (associativity)

Minimal complete definition

id, (.)

Methods

id :: cat a a #

the identity morphism

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

morphism composition

Instances

Category (Coercion :: k -> k -> *) # | Since: base-4.7.0.0
Instance details Defined in Control.Category Methods id :: Coercion a a # (.) :: Coercion b c -> Coercion a b -> Coercion a c #
Category ((:~:) :: k -> k -> *) # | Since: base-4.7.0.0
Instance details Defined in Control.Category Methods id :: a :~: a # (.) :: (b :~: c) -> (a :~: b) -> a :~: c #
Category ((:~~:) :: k -> k -> *) # | Since: base-4.10.0.0
Instance details Defined in Control.Category Methods id :: a :~~: a # (.) :: (b :~~: c) -> (a :~~: b) -> a :~~: c #
Monad m => Category (Kleisli m :: * -> * -> *) # | Since: base-3.0
Instance details Defined in Control.Arrow Methods id :: Kleisli m a a # (.) :: Kleisli m b c -> Kleisli m a b -> Kleisli m a c #
Category ((->) :: * -> * -> *) # | Since: base-3.0
Instance details Defined in Control.Category Methods id :: a -> a # (.) :: (b -> c) -> (a -> b) -> a -> c #

(<<<) :: Category cat => cat b c -> cat a b -> cat a c infixr 1 #

Right-to-left composition

(>>>) :: Category cat => cat a b -> cat b c -> cat a c infixr 1 #

Left-to-right composition