[Haskell-cafe] [ANN] acme-dont-1.2 - a "don't" construct
Richard Eisenberg
rae at richarde.dev
Wed Apr 1 13:33:31 UTC 2020
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 https://github.com/ghc-proposals/ghc-proposals/pull/216 <https://github.com/ghc-proposals/ghc-proposals/pull/216>, we can have `Not.do` introduce an indentation-aware block of comments. This would surely show off the power, elegance, and beauty of Haskell.
Richard
> On Apr 1, 2020, at 9:38 AM, Jack Kelly <jack at jackkelly.name> wrote:
>
> Hello all,
>
> I have taken over the maintainership of acme-dont, and am pleased to
> announce a new acme-dont release on Hackage[1].
>
>
> acme-dont provides a `don't` function, which does not execute its
> argument. For example, the following code will not print anything:
>
> import Acme.Dont (don't)
>
> quiet :: IO ()
> quiet = don't $ putStrLn "You'll never see this on stdout"
>
>
> New in this release:
>
> * `don't` has been generalised from `Monad` to `Applicative`. If you
> have been waiting since GHC 8.0.1's release in 2016[2] to use `don't` with
> `-XApplicativeDo`, wait no longer.
>
> * A test suite, to ensure that `don't` does not do anything. Previous
> versions could have been defined as `don't = void` for all we knew.
>
>
> Also, the acme-dont community now has a new home on sourcehut. On there,
> you can find the following invaluable resources:
>
> * A source repository[3], to track further developement and new ways of
> not doing things, with a commit history reconstructed from the release
> tarballs uploaded to Hackage.
>
> * A mailing list[4] for the acme-dont community to discuss the best ways
> of not doing things.
>
> * A bug tracker[5] to handle reports, in case someone observes acme-dont
> doing something.
>
> * Continuous integration[6], to ensure that acme-dont continues to not
> do things across multiple versions of GHC.
>
>
> I would like to thank Gracjan Polak for uploading the initial releases
> of `acme-dont`, and for maintaining the package these past eleven
> years. I do not intend to betray the responsibility he has assigned me
> in handing over this critical package.
>
> Best,
>
> -- Jack
>
> [1]: https://hackage.haskell.org/package/acme-dont-1.2
> [2]: https://www.haskell.org/ghc/download_ghc_8_0_1
> [3]: https://git.sr.ht/~jack/acme-dont
> [4]: https://lists.sr.ht/~jack/acme-dont-discuss
> [5]: https://todo.sr.ht/~jack/acme-dont
> [6]: https://builds.sr.ht/~jack/acme-dont
> _______________________________________________
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> Only members subscribed via the mailman list are allowed to post.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20200401/b261c334/attachment.html>
More information about the Haskell-Cafe
mailing list