
4 Mar
2006
4 Mar
'06
4:55 a.m.
On Fri, Mar 03, 2006 at 07:14:16PM -0800, Ashley Yakeley wrote:
Shouldn't Applicative be a subclass of Functor? "<$>" can then be dropped. [The Functor laws are implied by the Applicative laws]
It's the same old problem as with Monad, Functor and liftM (or indeed with Monad, Applicative and return): that fine-grained hierarchies in Haskell mean extra work for the programmer. You'd be forced to define a Functor instance, even if all you wanted was pure and <*>. There have been a series of proposed language changes to address this, the latest being John Meacham's class synonyms. But less connected classes seem to fit better with the current Haskell.