proposal #3335: make some Applicative functions into methods, and
split off Data.Functor
Ross Paterson
ross at soi.city.ac.uk
Mon Jun 29 08:45:45 EDT 2009
The proposal is that the following functions
(<$) :: Functor f => a -> f b -> f a
(*>) :: Applicative f => f a -> f b -> f b
(<*) :: Applicative f => f a -> f b -> f a
some :: Alternative f => f a -> f [a]
many :: Alternative f => f a -> f [a]
are moved into the corresponding classes, with the existing implementations
as default definitions. This gives people creating instances the option of
defining specialized implementations of these functions, though they should
be equivalent to the default definitions.
Although (<$) is now a method of the Functor class, it is hidden in the
re-export by the Prelude, Control.Monad and Monad. The new module
Data.Functor exposes the full class, plus the function (<$>). These are
also re-exported by Control.Applicative.
Deadline: 20th July 2009.
More information about the Libraries
mailing list