[Haskell-cafe] Category Theory woes

Alexander Solla ajs at 2piix.com
Thu Feb 18 17:47:39 EST 2010

On Feb 18, 2010, at 2:08 PM, Nick Rudnick wrote:

> my actual posting was about rename refactoring category theory;  
> closed/open was just presented as an example for suboptimal  
> terminology in maths. But of course, bordered/unbordered would be  
> extended by e.g. «partially bordered» and the same holds.

And my point was that your terminology was suboptimal for just the  
same reasons.  The difficulty of mathematics is hardly the funny names.

Perhaps you're not familiar with the development of Category theory.   
Hans Aberg gave a brief development.  Basically, Category theory is  
the RESULT of the refactoring you're asking about.  Category theory's  
beginnings are found in work on differential topology (where functors  
and higher order constructs took on a life of their own), and the  
unification of topology, lattice theory, and universal algebra (in  
order to ground that higher order stuff).  Distinct models and notions  
of computation were unified, using arrows and objects.

Now, you could have a legitimate gripe about current category theory  
terminology.  But I am not so sure.  We can "simplify" lots of  
things.  Morphisms can become arrows or functions.  Auto- can become  
"self-".  "Homo-" can become "same-".  Functors can become "Category  
arrows".  Does it help?  You tell me.

But if we're ever going to do anything interesting with Category  
theory, we're going to have to go into the realm of dealing with SOME  
kind of algebra.  We need examples, and the mathematically tractable  
ones have names like "group", "monoid", "ring", "field", "sigma- 
algebras", "lattices", "logics", "topologies", "geometries".  They are  
arbitrary names, grounded in history.  Any other choice is just as  
arbitrary, if not more so.  The closest thing algebras have to a  
unique name is their signature -- basically their axiomatization -- or  
a long descriptive name in terms of arbitrary names and adjectives  
("the Cartesian product of a Cartesian closed category and a groupoid  
with groupoid addition induced by....").  The case for Pareto  
efficiency is here:  is changing the name of these kinds of structures  
wholesale a win for efficiency?  The answer is "no".  Everybody would  
have to learn the new, arbitrary names, instead of just some people  
having to learn the old arbitrary names.

Let's compare this to the "monad fallacy".  It is said every beginner  
Haskell programmer write a monad tutorial, and often falls into the  
"monad fallacy" of thinking that there is only one interpretation for  
monadism.  Monads are relatively straightforward.  Their power comes  
from the fact that many different kinds of things are "monadic" --  
sequencing, state, function application.  What name should we use for  
monads instead?  Which interpretation must we favor, despite the fact  
that others will find it counter-intuitive?  Or should we choose to  
not favor one, and just pick a new arbitrary name?

More information about the Haskell-Cafe mailing list