[Haskell-cafe] Monad of no `return` Proposal (MRP): Moving `return` out of `Monad`

Sven Panne svenpanne at gmail.com
Mon Oct 5 18:58:57 UTC 2015

2015-10-05 17:09 GMT+02:00 Gershom B <gershomb at gmail.com>:

> On October 5, 2015 at 10:59:35 AM, Bryan O'Sullivan (bos at serpentine.com)
> wrote:
> [...] As for libraries, it has been pointed out, I believe, that without
> CPP one can write instances compatible with AMP, and also with AMP + MRP.
> One can also write code, sans CPP, compatible with pre- and post- AMP. [...]

Nope, at least not if you care about -Wall: If you take e.g. (<$>) which is
now part of the Prelude, you can't simply import some compatibility module,
because GHC might tell you (rightfully) that that import is redundant,
because (<$>) is already visible through the Prelude. So you'll have to use
CPP to avoid that import on base >= 4.8, be it from it Data.Functor,
Control.Applicative or some compat-* module. And you'll have to use CPP in
each and every module using <$> then, unless I miss something obvious.
AFAICT all transitioning guides ignore -Wall and friends...
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20151005/f3c8d168/attachment.html>

More information about the Haskell-Cafe mailing list