I just added `Down` to the RIO prelude, and the absence of a deconstructor was my #1 concern about doing so. It invites another package to provide an alternative, and we avoid including things with actively competing implementations. I'd much rather see this handled in `base`.

(I'd rather have it named `unDown`, so as not to steal the name `getDown` from the heroes who will pair it with `getFunky`. But that's a lesser concern.)

On Thu, May 2, 2019 at 8:13 PM davean <davean@xkcd.com> wrote:
I have needed this many times.

On Thu, May 2, 2019 at 10:56 PM Fumiaki Kinoshita <fumiexcel@gmail.com> wrote:
It's awkward to write a lambda to unwrap this kind of wrappers. I propose

newtype Down a = Down { getDown :: a }

with the Show/Read instances as if they didn't have named fields.

The same goes for Control.Arrow.ArrowMonad, although I'm not sure about its usefulness...
_______________________________________________
Libraries mailing list
Libraries@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
_______________________________________________
Libraries mailing list
Libraries@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries