<p dir="ltr">Excellent!</p>
<div class="gmail_extra"><br><div class="gmail_quote">On Aug 5, 2016 2:32 PM, "Edward Kmett" <<a href="mailto:ekmett@gmail.com">ekmett@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Done and done! Retroactively. How is that for service? =)<div><div><br></div><div>-Edward</div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Aug 5, 2016 at 2:08 PM, David Feuer <span dir="ltr"><<a href="mailto:david.feuer@gmail.com" target="_blank">david.feuer@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr">I know there's been some discussion about letting users select the deriving mechanism they want, but I'd like to propose a separate tweak to the defaults. Specifically, it's annoying to have to use three pragmas to let me write</p>
<p dir="ltr">newtype Foo f a = Foo (f a) deriving (Functor, Foldable, Traversable)<br>
data Bar f a = Bar (f a) deriving (Functor, Foldable, Traversable)</p>
<p dir="ltr">and more annoying still that I'll end up with Foldable and Functor instances for Foo that may be much worse than GND-derived ones.</p>
<p dir="ltr">The tweaks I'm after:</p>
<p dir="ltr">1. Prefer GND to the built-in derivations for Functor and Foldable, and probably also Eq and Ord.<br>
2. Make DeriveTraversable imply DeriveFunctor and DeriveFoldable.</p>
<br>_______________________________________________<br>
ghc-devs mailing list<br>
<a href="mailto:ghc-devs@haskell.org" target="_blank">ghc-devs@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a><br>
<br></blockquote></div><br></div>
</blockquote></div></div>