[Haskell-cafe] What do you call Applicative Functor Morphism?

wren ng thornton wren at freegeek.org
Sat Nov 6 04:22:10 EDT 2010

On 11/6/10 2:09 AM, Sebastian Fischer wrote:
> Hello,
> I'm curious and go a bit off topic triggered by your statement:
> On Nov 6, 2010, at 12:49 PM, roconnor at theorem.ca wrote:
>> An applicative functor morphism is a polymorphic function,
>> eta : forall a. A1 a -> A2 a between two applicative functors A1 and
>> A2 that preserve pure and <*>
> I recently wondered: why "morphism" and not "homomorphism"?

Indeed, for the present example I'd call eta an applicative-functor 

The use of "morphism" in category theory originated as a shortening of 
"homomorphism"[2], though there is a semantic difference between them as 
the two terms are used today. A morphism is an arrow in any particular 
category. What it takes to be morphism in category, C, depends on which 
category C happens to be. It turns out that many of the algebraic 
constructs studied outside of category theory form categories where the 
objects are particular constructs (e.g., specific rings, groups,...) and 
the morphisms are the appropriate homomorphisms (e.g., ring 
homomorphisms, group homomorphisms,...). Thus, the term "homomorphism" 
has to do with particular kinds of structure preserving transformations 
that are discussed in the underlying theories, whereas "morphism" is a 
general term in category theory used as a metatheory.

[1] Assuming the context presented in the original email. In other 
contexts I may refer to eta as an Applicative morphism (i.e., a morphism 
in the category whose objects are Applicative instances) or as an 
Applicative transformation (i.e., a natural transformation between 
Applicative instances viewed as functors).

[2] Whence the use of "Hom(A,B)" to refer to the collection of morphisms 
from A to B, and related terms like "hom-set" and "hom-functor".

Live well,

More information about the Haskell-Cafe mailing list