categories-1.0.2: Categories

Portabilitynon-portable (class-associated types)
Stabilityexperimental
MaintainerEdward Kmett <ekmett@gmail.com>
Safe HaskellSafe-Infered

Control.Category.Cartesian.Closed

Contents

Description

 

Synopsis

Cartesian Closed Category

class Cartesian k => CCC k whereSource

A CCC has full-fledged monoidal finite products and exponentials

Associated Types

type Exp k :: * -> * -> *Source

Methods

apply :: Product k (Exp k a b) a `k` bSource

curry :: (Product k a b `k` c) -> a `k` Exp k b cSource

uncurry :: (a `k` Exp k b c) -> Product k a b `k` cSource

Instances

CCC (->) 

unitCCC :: CCC k => a `k` Exp k b (Product k b a)Source

counitCCC :: CCC k => Product k b (Exp k b a) `k` aSource

Co-(Cartesian Closed Category)

class CoCartesian k => CoCCC k whereSource

A Co-CCC has full-fledged comonoidal finite coproducts and coexponentials

Associated Types

type Coexp k :: * -> * -> *Source

Methods

coapply :: b `k` Sum k (Coexp k a b) aSource

cocurry :: (c `k` Sum k a b) -> Coexp k b c `k` aSource

uncocurry :: (Coexp k b c `k` a) -> c `k` Sum k a bSource

unitCoCCC :: CoCCC k => a `k` Sum k b (Coexp k b a)Source

counitCoCCC :: CoCCC k => Coexp k b (Sum k b a) `k` aSource