
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 newtype Foo f a = Foo (f a) deriving (Functor, Foldable, Traversable) data Bar f a = Bar (f a) deriving (Functor, Foldable, Traversable) 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. The tweaks I'm after: 1. Prefer GND to the built-in derivations for Functor and Foldable, and probably also Eq and Ord. 2. Make DeriveTraversable imply DeriveFunctor and DeriveFoldable.

Done and done! Retroactively. How is that for service? =)
-Edward
On Fri, Aug 5, 2016 at 2:08 PM, David Feuer
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
newtype Foo f a = Foo (f a) deriving (Functor, Foldable, Traversable) data Bar f a = Bar (f a) deriving (Functor, Foldable, Traversable)
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.
The tweaks I'm after:
1. Prefer GND to the built-in derivations for Functor and Foldable, and probably also Eq and Ord. 2. Make DeriveTraversable imply DeriveFunctor and DeriveFoldable.
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

Excellent!
On Aug 5, 2016 2:32 PM, "Edward Kmett"
Done and done! Retroactively. How is that for service? =)
-Edward
On Fri, Aug 5, 2016 at 2:08 PM, David Feuer
wrote: 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
newtype Foo f a = Foo (f a) deriving (Functor, Foldable, Traversable) data Bar f a = Bar (f a) deriving (Functor, Foldable, Traversable)
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.
The tweaks I'm after:
1. Prefer GND to the built-in derivations for Functor and Foldable, and probably also Eq and Ord. 2. Make DeriveTraversable imply DeriveFunctor and DeriveFoldable.
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
participants (2)
-
David Feuer
-
Edward Kmett