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