
On 2015-09-25 at 04:40:25 +0200, Edward Kmett wrote:
I'm a rather enthusiastic +1 on this, given a sufficiently long time table for the switch!
We ARE asking a lot of people to break code here.
It does drastically reduce the amount of "magic" involved in the ApplicativeDo story and avoids enshrining the current historical artifact in a future Haskell report that includes the AMP.
I'd also like to consider employing the exact same migration plan for (>>) at the same time. It is redundant with (*>), and the choice of which gets implemented in terms of the other introduces precisely the same set of issues. If we can do that then this would fix the remaining performance issues for mapM, letting us eventually remove that from Traversable as well, moving it to a top level alias in the same way -- maybe not until 8.8 or something, but it'd at least give us a roadmap to get there eventually.
+1 It makes totally sense to apply the same treatment for `Monad((>>))` also because the same warning machinery in GHC can be reused for that. A simple grep heuristic shows about 114 packages affected: https://gist.github.com/hvr/0dd477935266c00c58e0