Proposal: Add (<$>) to Prelude as part of the AMP in GHC 7.10-RC3

Conor McBride conor at
Tue Feb 24 18:25:44 UTC 2015

On 24 Feb 2015, at 15:39, Edward Kmett <ekmett at> wrote:

> We have a couple of weeks until the third release candidate for GHC 7.10 goes out the door.
> Along the way with the last couple of release candidates folks have found some problems with the way we implemented the AMP. [1][2]
> Most notably, we failed to include (<$>) in the Prelude, so the standard idiom of
> foo <$> bar <*> baz <*> quux
> doesn't work out of the box!
> I'd like to include (<$>) in the Prelude in RC3.
> I'd also like to invite discussion about whether folks believe we should include (<$) out of the box. 
> (<$) has been a member of Functor for a long time, which is only visible if you import it from Data.Functor or bring in Control.Applicative. There is an idiom that you use (<*) and (<$) to point to the parts of the structure that you want to keep the answers from when building longer such Applicative chains.

For more on this idiom (indeed), let me shamelessly plug

and advise that the two travel together.

I won’t vote. While we are still in the situation that progress breaks code which has been
engineered to work around the prior lack of progress, making progress is simultaneously
a good and bad idea. We should think about how to adapt our language of imports to
accept the only too obvious reality that libraries change over time, so that we might be
allowed to program defensively against sudden outbreaks of common sense.



> Discussion Period: 2 weeks
> Thank you,
> -Edward Kmett
> [1]
> [2]
> _______________________________________________
> Libraries mailing list
> Libraries at

More information about the Libraries mailing list