I think this probably makes sense, especially since you can silence the warning when you intend to add an unnecessary constraint.
I had one thought though: consider an abstract data type with functions that operates over it. I might want to require e.g Ord in the definition of a function so I have freedom to change my implementation later, even though the current implementation doesn't need Ord. Think of it as separating specification and implementation. An example is 'nub'. I initially might implement it as a O(n^2) algorithm using only Eq, but I might want to leave the door open to using Ord to create something better, without later having to break backwards compatibility. On Wed, Jan 7, 2015 at 4:19 PM, Simon Peyton Jones <[email protected]> wrote: > Friends > > I’ve pushed a big patch that adds –fwarn-redundant-constraints (on by > default). It tells you when a constraint in a signature is unnecessary, > e.g. > > f :: Ord a => a -> a -> Bool > > f x y = True > > I think I have done all the necessary library updates etc, so everything > should build fine. > > Four libraries which we don’t maintain have such warnings (MANY of them in > transformers) so I’m ccing the maintainers: > > o containers > > o haskeline > > o transformers > > o binary > > > > Enjoy! > > > > Simon > > _______________________________________________ > ghc-devs mailing list > [email protected] > http://www.haskell.org/mailman/listinfo/ghc-devs > >
_______________________________________________ ghc-devs mailing list [email protected] http://www.haskell.org/mailman/listinfo/ghc-devs
