Question

I'm trying to gain a really deep understanding of the Monad hierarchy of classes. Part of that is, of course, seeing lots of examples, but I'm particularly interested in the history of how these classes were first discovered and their motivations.

I understand that Monads came about initially as a solution to the IO problem in Haskell, and am familiar with papers by Moggi and Wadler in 1989-92 that introduced them.

I've also seen where Applicatives were introducted in Conor McBride and Ross Paterson's "Applicative Programming with Effects."

By my question is what popularized Functors, and when did they come about? I assume it must be after Monad since Functor is not a superclass, but haven't people been using generalized map functions since the early days of LISP?

Was it helpful?

Solution

Functor was in the 1.3 version of the Haskell report which is what standardized both monadic IO and higher kinded type classes. So, the Functor typeclass is as old as the monad typeclass. And, what is more, Functor is the first motivating example in Jones' paper introducting "constructor classes!" You might say the Jones paper popularized the idea, but as you point out people have wanted generalized maps for a long time indead.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top