
On Thu, Dec 23, 2010 at 11:46 PM, Mario Blažević
I don't personally care what's it called, as long as it's available. Can anybody point to an authoritative source for the terminology, though? Wikipedia claims that cofunctor is a contravariant functor.
Does nLab count as sufficiently authoritative? As far as I can tell it just uses "contravariant functor" if anything, and never uses "cofunctor". c.f. http://ncatlab.org/nlab/show/contravariant+functor
Also, is there anything in category theory equivalent to the Functor -> Applicative -> Monad hierarchy , but with a Cofunctor/Contrafunctor at the base? I'm just curious, I'm not advocating adding the entire hierarchy to the base library. ;)
As far as I understand (which may not actually be all that far), contravariant functors just go to or from an opposite category, a distinction that is purely a matter of definition, not anything intrinsic. On the other hand, Applicative and Monad are based on endofunctors specifically, i.e. functors from a category to itself, which would seem to necessarily exclude functors from a category to its opposite. There may exist constructs specifically based on such contravariant "endofunctors" but I doubt they'd be *equivalent* to things like Applicative/Monad in any particular way. - C.