On Jun 29, 2004, at 6:46 PM, Iavor S. Diatchki wrote:

In Haskell, natural transformations are polymorphic functions, tau :: f a -> g a. For example, maybeToList :: Maybe a -> [a].

actually i think this is a good approximation. not all polymorphic functions are natural transformations, but "simple" ones usually are.

I think you have it backwards, unless you are thinking of a more general notion of polymorphism than parametric polymorphism.


Ad hoc polymorphic functions may or may not be natural; you have to verify the naturality condition in each case.

But every parametrically polymorphic function is a natural transformation, though the converse fails: not every natural transformation is parametrically polymorphic. In particular, some natural transformations are generic functions (polytypic), and their components (instantiations at a type) are not all instances of a single algorithm.

I'm not sure if every natural transformation on endofunctors on a category modelling a Haskell-like language is denoted by either a parametric or generic term.

Regards,
Frank

_______________________________________________
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to