[GHC] #11582: Redundant constraints warning complains that (a ~ b) is redundant

GHC ghc-devs at haskell.org
Wed Feb 17 08:28:26 UTC 2016


#11582: Redundant constraints warning complains that (a ~ b) is redundant
-------------------------------------+-------------------------------------
        Reporter:  bgamari           |                Owner:
            Type:  bug               |               Status:  closed
        Priority:  normal            |            Milestone:  8.0.1
       Component:  Compiler (Type    |              Version:  8.0.1-rc2
  checker)                           |
      Resolution:  invalid           |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
 Type of failure:  Incorrect         |  Unknown/Multiple
  warning at compile-time            |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by Lemming):

 I thought a bit about it and found that equality constraints and type
 class constraints actually differ in the following aspect: If you remove a
 redundant type class constraint from a function type signature then any
 code depending on that function will continue to be type correct and
 continue to work as before. In contrast to that, if you remove an equality
 constraint (or generalize a function like asTypeOf to a more general
 type), then code might no longer pass the type checker because of
 ambiguous types.
 That is, if you eagerly remove all redundant constraints then removed type
 class constraints will not do any harm but removed equality constraints
 might do so.

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11582#comment:2>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list