category-extras-0.53.6: Various modules and constructs inspired by category theoryContentsIndex
Control.Category.Cartesian.Closed
Portabilitynon-portable (class-associated types)
Stabilityexperimental
MaintainerEdward Kmett <ehommett@gmail.com>
Contents
Cartesian Closed Category
Co-(Cartesian Closed Category)
Description
NB: Some rewrite rules are disabled pending resolution of: http://hackage.haskell.org/trac/ghc/ticket/2291
Synopsis
class (Monoidal hom prod i, Cartesian hom prod i) => CCC hom prod exp i | hom -> prod exp i where
apply :: hom (prod (exp a b) a) b
curry :: hom (prod a b) c -> hom a (exp b c)
uncurry :: hom a (exp b c) -> hom (prod a b) c
unitCCC :: CCC hom prod exp i => hom a (exp b (prod b a))
counitCCC :: CCC hom prod exp i => hom (prod b (exp b a)) a
class (Comonoidal hom sum i, CoCartesian hom sum i) => CoCCC hom sum coexp i | hom -> sum coexp i where
coapply :: hom b (sum (coexp hom a b) a)
cocurry :: hom c (sum a b) -> hom (coexp hom b c) a
uncocurry :: hom (coexp hom b c) a -> hom c (sum a b)
unitCoCCC :: CoCCC hom sum coexp i => hom a (sum b (coexp hom b a))
counitCoCCC :: CoCCC hom sum coexp i => hom (coexp hom b (sum b a)) a
Cartesian Closed Category
class (Monoidal hom prod i, Cartesian hom prod i) => CCC hom prod exp i | hom -> prod exp i where
A CCC has full-fledged monoidal finite products and exponentials
Methods
apply :: hom (prod (exp a b) a) b
curry :: hom (prod a b) c -> hom a (exp b c)
uncurry :: hom a (exp b c) -> hom (prod a b) c
unitCCC :: CCC hom prod exp i => hom a (exp b (prod b a))
counitCCC :: CCC hom prod exp i => hom (prod b (exp b a)) a
Co-(Cartesian Closed Category)
class (Comonoidal hom sum i, CoCartesian hom sum i) => CoCCC hom sum coexp i | hom -> sum coexp i where
A Co-CCC has full-fledged comonoidal finite coproducts and coexponentials
Methods
coapply :: hom b (sum (coexp hom a b) a)
cocurry :: hom c (sum a b) -> hom (coexp hom b c) a
uncocurry :: hom (coexp hom b c) a -> hom c (sum a b)
unitCoCCC :: CoCCC hom sum coexp i => hom a (sum b (coexp hom b a))
counitCoCCC :: CoCCC hom sum coexp i => hom (coexp hom b (sum b a)) a
Produced by Haddock version 2.1.0