Functor => Applicative => Monad

wren ng thornton wren at
Mon Dec 6 20:54:57 CET 2010

On 12/6/10 9:48 AM, Conor McBride wrote:
> On 6 Dec 2010, at 14:09, John Smith wrote:
>> This proposal now has a Wiki page

I, like Ashley Yakeley, prefer the name "return" for this context. The 
name "pure" suggests that applicatives/monads are inherently impure, 
when in fact they are generally pure. Also the name "return" was chosen 
specifically because of its similarity to (in spite of its difference 
from) the imperative keyword, as well as the suggestion of its forming 
the simplest 'program'--- following the idea of monads as building up 
programs for executing later. The name "pure" for applicatives has 
historically conflicted with the similar function for the arrows class 
(where I think "pure" is a better name than "arr"), and AFAIK 
applicatives took the name largely because they couldn't reuse "return".

Also, there's a difference between breaking legacy code for legitimate 
improvements (e.g., Applicative=>Monad) vs breaking it just for the sake 
of breaking it.

Live well,

More information about the Libraries mailing list