
I'd strongly discourage removing <$> from Control.Applicative, as it has
been there since the start and basically every single client of
Control.Applicative would break and have to add a second import.
The idiom of foo <$> bar <*> baz <*> ... is the whole point of using an
Applicative after all!
I laud the goal of everything having exactly one place to be, but here I
think practical considerations override.
-Edward Kmett
On Thu, Apr 8, 2010 at 4:07 PM, Bas van Dijk
On Thu, Apr 8, 2010 at 9:38 PM, Isaac Dupree
This parallelism also suggests to me that <$$> should be placed (only) in Control.Applicative, which is where <*>, <$>, and <**> reside. Yeah, I know that's annoying...
That's indeed annoying.
What about removing <$> and <$ from Control.Applicative?
One advantage is that this reduces the complexity tax of Control.Applicative.
One disadvantage is that this will surely break some code. Especially because, for some weird reason, Data.Functor is not know to hoogle.
http://haskell.org/hoogle/?q=Data.Functor
And <$> is reported to be only exported by Control.Applicative
http://haskell.org/hoogle/?hoogle=%3C%24%3E
sigh...
Let's save this for a new proposal however...
Bas
P.S. Jonathan, thanks for the equational law relating <$$> and <**>: a <$$> f = a <**> return f this has strongly put me back in the +1 camp :-) _______________________________________________ Libraries mailing list Libraries@haskell.org http://www.haskell.org/mailman/listinfo/libraries