[Haskell-cafe] categories in Haskell and module names

Roman Beslik beroal at ukr.net
Wed Oct 5 17:22:58 CEST 2011


IMHO there are 2 ways to define categories in Haskell:
W0) the category of types and functions ("base.Data.Functor" and company 
belongs to it);
W1) the class "base.Control.Category.Category".
(Defining a category where the class of objects is a type seems 
impossible in Haskell.)

But these ways are mingled in "base". E.g. "Control.Applicative" (W0) 
and "Control.Category" (W1) are neighbors. Oddly, "Data.Functor" (W0) is 
under "Data". I believe that the whole library "category-extras" belongs 
to W1.

I suggest to split these ways under distinct names, e.g.:
W0) Category.Function (@hom == (->)@);
W1) Category.Hom ("hom" is an abstract type constructor).
Maybe both should be under "Mathematics".

More information about the Haskell-Cafe mailing list