
On 24 Feb 2015, at 15:39, Edward Kmett
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 http://stackoverflow.com/a/15124278/828361 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. Apologetically Conor
Discussion Period: 2 weeks
Thank you, -Edward Kmett
[1] http://www.reddit.com/r/haskell/comments/2wzixa/shouldnt_be_in_prelude/ [2] https://plus.google.com/115504368969270249241/posts/URzeDWd7qMp _______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries