<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Presumably, if we don't execute the argument of don't, we don't need to type-check it either. This suggests that, with -fdefer-type-errors -Wno-deferred-type-errors -Wno-deferred-out-of-scope-variables, `don't $` becomes a decent replacement for the `--` commenting operator, except that `don't` has the advantage of being indentation-aware in a `do` block. Perhaps with <a href="https://github.com/ghc-proposals/ghc-proposals/pull/216" class="">https://github.com/ghc-proposals/ghc-proposals/pull/216</a>, we can have `Not.do` introduce an indentation-aware block of comments. This would surely show off the power, elegance, and beauty of Haskell.<div class=""><br class=""></div><div class="">Richard<br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Apr 1, 2020, at 9:38 AM, Jack Kelly <<a href="mailto:jack@jackkelly.name" class="">jack@jackkelly.name</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">Hello all,<br class=""><br class="">I have taken over the maintainership of acme-dont, and am pleased to<br class="">announce a new acme-dont release on Hackage[1].<br class=""><br class=""><br class="">acme-dont provides a `don't` function, which does not execute its<br class="">argument. For example, the following code will not print anything:<br class=""><br class="">    import Acme.Dont (don't)<br class=""><br class="">    quiet :: IO ()<br class="">    quiet = don't $ putStrLn "You'll never see this on stdout"<br class=""><br class=""><br class="">New in this release:<br class=""><br class="">* `don't` has been generalised from `Monad` to `Applicative`. If you<br class="">  have been waiting since GHC 8.0.1's release in 2016[2] to use `don't` with<br class="">  `-XApplicativeDo`, wait no longer.<br class=""><br class="">* A test suite, to ensure that `don't` does not do anything. Previous<br class="">  versions could have been defined as `don't = void` for all we knew.<br class=""><br class=""><br class="">Also, the acme-dont community now has a new home on sourcehut. On there,<br class="">you can find the following invaluable resources:<br class=""><br class="">* A source repository[3], to track further developement and new ways of<br class="">  not doing things, with a commit history reconstructed from the release<br class="">  tarballs uploaded to Hackage.<br class=""><br class="">* A mailing list[4] for the acme-dont community to discuss the best ways<br class="">  of not doing things.<br class=""><br class="">* A bug tracker[5] to handle reports, in case someone observes acme-dont<br class="">  doing something.<br class=""><br class="">* Continuous integration[6], to ensure that acme-dont continues to not<br class="">  do things across multiple versions of GHC.<br class=""><br class=""><br class="">I would like to thank Gracjan Polak for uploading the initial releases<br class="">of `acme-dont`, and for maintaining the package these past eleven<br class="">years. I do not intend to betray the responsibility he has assigned me<br class="">in handing over this critical package.<br class=""><br class="">Best,<br class=""><br class="">-- Jack<br class=""><br class="">[1]: <a href="https://hackage.haskell.org/package/acme-dont-1.2" class="">https://hackage.haskell.org/package/acme-dont-1.2</a><br class="">[2]: <a href="https://www.haskell.org/ghc/download_ghc_8_0_1" class="">https://www.haskell.org/ghc/download_ghc_8_0_1</a><br class="">[3]: <a href="https://git.sr.ht/~jack/acme-dont" class="">https://git.sr.ht/~jack/acme-dont</a><br class="">[4]: <a href="https://lists.sr.ht/~jack/acme-dont-discuss" class="">https://lists.sr.ht/~jack/acme-dont-discuss</a><br class="">[5]: <a href="https://todo.sr.ht/~jack/acme-dont" class="">https://todo.sr.ht/~jack/acme-dont</a><br class="">[6]: <a href="https://builds.sr.ht/~jack/acme-dont" class="">https://builds.sr.ht/~jack/acme-dont</a><br class="">_______________________________________________<br class="">Haskell-Cafe mailing list<br class="">To (un)subscribe, modify options or view archives go to:<br class=""><a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" class="">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br class="">Only members subscribed via the mailman list are allowed to post.</div></div></blockquote></div><br class=""></div></body></html>