planet-mitchell-0.1.0: Planet Mitchell

Safe HaskellSafe
LanguageHaskell2010

Category

Synopsis

Documentation

class Category (cat :: k -> k -> *) 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 (:-)

Possible since GHC 7.8, when Category was made polykinded.

Instance details

Defined in Data.Constraint

Methods

id :: a :- a #

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

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 #

Category k2 => Category (Dual k2 :: k1 -> k1 -> *) 
Instance details

Defined in Data.Semigroupoid.Dual

Methods

id :: Dual k2 a a #

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

Category k2 => Category (WrappedCategory k2 :: k1 -> k1 -> *) 
Instance details

Defined in Data.Semigroupoid

Methods

id :: WrappedCategory k2 a a #

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

Monoid m => Category (Semi m :: k -> k -> *) 
Instance details

Defined in Data.Semigroupoid

Methods

id :: Semi m a a #

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

(Applicative f, Category p) => Category (Tannen f p :: k -> k -> *) 
Instance details

Defined in Data.Bifunctor.Tannen

Methods

id :: Tannen f p a a #

(.) :: Tannen f p b c -> Tannen f p a b -> Tannen f p a c #

Category Op 
Instance details

Defined in Data.Functor.Contravariant

Methods

id :: Op a a #

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

Category ReifiedGetter 
Instance details

Defined in Control.Lens.Reified

Methods

id :: ReifiedGetter a a #

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

Category ReifiedFold 
Instance details

Defined in Control.Lens.Reified

Methods

id :: ReifiedFold a a #

(.) :: ReifiedFold b c -> ReifiedFold a b -> ReifiedFold 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 #

(Applicative f, Monad f) => Category (WhenMissing f :: * -> * -> *)

Since: containers-0.5.9

Instance details

Defined in Data.IntMap.Internal

Methods

id :: WhenMissing f a a #

(.) :: WhenMissing f b c -> WhenMissing f a b -> WhenMissing f a c #

Category (Indexed i :: * -> * -> *) 
Instance details

Defined in Control.Lens.Internal.Indexed

Methods

id :: Indexed i a a #

(.) :: Indexed i b c -> Indexed i a b -> Indexed i a c #

Category p => Category (TambaraSum p :: * -> * -> *) 
Instance details

Defined in Data.Profunctor.Choice

Methods

id :: TambaraSum p a a #

(.) :: TambaraSum p b c -> TambaraSum p a b -> TambaraSum p a c #

Category p => Category (Closure p :: * -> * -> *) 
Instance details

Defined in Data.Profunctor.Closed

Methods

id :: Closure p a a #

(.) :: Closure p b c -> Closure p a b -> Closure p a c #

Category p => Category (Tambara p :: * -> * -> *) 
Instance details

Defined in Data.Profunctor.Strong

Methods

id :: Tambara p a a #

(.) :: Tambara p b c -> Tambara p a b -> Tambara p a c #

Monad f => Category (Star f :: * -> * -> *) 
Instance details

Defined in Data.Profunctor.Types

Methods

id :: Star f a a #

(.) :: Star f b c -> Star f a b -> Star f a c #

Category p => Category (WrappedArrow p :: * -> * -> *) 
Instance details

Defined in Data.Profunctor.Types

Methods

id :: WrappedArrow p a a #

(.) :: WrappedArrow p b c -> WrappedArrow p a b -> WrappedArrow p a c #

Applicative f => Category (Static f :: * -> * -> *) 
Instance details

Defined in Data.Semigroupoid.Static

Methods

id :: Static f a a #

(.) :: Static f b c -> Static f a b -> Static f a c #

Category ((->) :: * -> * -> *)

Since: base-3.0

Instance details

Defined in Control.Category

Methods

id :: a -> a #

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

Comonad w => Category (Cokleisli w :: * -> * -> *) 
Instance details

Defined in Control.Comonad

Methods

id :: Cokleisli w a a #

(.) :: Cokleisli w b c -> Cokleisli w a b -> Cokleisli w a c #

(Monad f, Applicative f) => Category (WhenMatched f x :: * -> * -> *)

Since: containers-0.5.9

Instance details

Defined in Data.IntMap.Internal

Methods

id :: WhenMatched f x a a #

(.) :: WhenMatched f x b c -> WhenMatched f x a b -> WhenMatched f x a c #

(Applicative f, Monad f) => Category (WhenMissing f k :: * -> * -> *)

Since: containers-0.5.9

Instance details

Defined in Data.Map.Internal

Methods

id :: WhenMissing f k a a #

(.) :: WhenMissing f k b c -> WhenMissing f k a b -> WhenMissing f k a c #

p ~ q => Category (Rift p q :: * -> * -> *)

Rift p p forms a Monad in the Profunctor 2-category, which is isomorphic to a Haskell Category instance.

Instance details

Defined in Data.Profunctor.Composition

Methods

id :: Rift p q a a #

(.) :: Rift p q b c -> Rift p q a b -> Rift p q a c #

(Monad f, Applicative f) => Category (WhenMatched f k x :: * -> * -> *)

Since: containers-0.5.9

Instance details

Defined in Data.Map.Internal

Methods

id :: WhenMatched f k x a a #

(.) :: WhenMatched f k x b c -> WhenMatched f k x a b -> WhenMatched f k x a c #

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

Left-to-right composition

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

Right-to-left composition