proposal #3335: make some Applicative functions into methods, and split off Data.Functor

Johan Tibell johan.tibell at
Mon Jun 29 09:03:33 EDT 2009


On Mon, Jun 29, 2009 at 2:45 PM, Ross Paterson <ross at> wrote:

> 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.

Could we come up with some policy on what goes in Control.* versus Data.*?
As we add more and more modules that fits in both categories it's becoming
increasingly hard to remember what lives where. Using both Data and Control
gives import lists an ugly asymmetry:

import Control.Applicative
import Data.Functor
import Control.Monad


-------------- next part --------------
An HTML attachment was scrubbed...

More information about the Libraries mailing list