Redundant constraints
Johan Tibell
johan.tibell at gmail.com
Wed Jan 7 15:27:21 UTC 2015
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 <simonpj at microsoft.com>
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
> ghc-devs at haskell.org
> http://www.haskell.org/mailman/listinfo/ghc-devs
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/ghc-devs/attachments/20150107/cfd66eec/attachment.html>
More information about the ghc-devs
mailing list