map and fmap

Aaron Denney wnoise at
Fri Aug 18 12:32:23 EDT 2006

On 2006-08-18, John Hughes <rjmh at> wrote:
> Jon Fairbairn <jon.fairbairn at>
>> A reasonable choice (forestalling the objection that using
>>, listMap or mapList would be too distracting for
>> students) would be
>>   lmap:: (t -> t') -> [t] -> [t']
>>   map:: Functor f => (t -> t') -> f t -> f t'
> I'd prefer mapList to lmap, to be honest--at least the connection between 
> the name
> and the type is clear. But remember, this would at a stroke make Haskell'
> incompatible with all existing Haskell textbooks. Even if publishers brought
> out new editions, even if we told students to buy them, there are many, many
> second hand books in circulation, and it would be years before one could 
> rely
> on students having Haskell' books. All that time, students would write map
> instead of mapList because that's what the book says, and get stuck with
> incomprehensible error messages. Is it really worth an incompatible change
> in the library functions used by all beginners, just to rename fmap to map?
> It seems to me that the gain from a change is very small, and the cost 
> considerable.

But list is a functor, so it should work.  They just get harder error
messages, when their programs are wrong.  Let's work on the error messages,
not keeping the language harder to understand for more general programs.

Aaron Denney

More information about the Haskell-prime mailing list