[GHC] #10100: Bogus "redundant constraint" warning with functional dependencies

GHC ghc-devs at haskell.org
Thu Feb 19 17:37:38 UTC 2015


#10100: Bogus "redundant constraint" warning with functional dependencies
-------------------------------------+-------------------------------------
        Reporter:  jstolarek         |                   Owner:  simonpj
            Type:  bug               |                  Status:  new
        Priority:  normal            |               Milestone:  7.10.1
       Component:  Compiler          |                 Version:  7.11
      Resolution:                    |                Keywords:
Operating System:  Unknown/Multiple  |            Architecture:
 Type of failure:  None/Unknown      |  Unknown/Multiple
      Blocked By:                    |               Test Case:
 Related Tickets:                    |                Blocking:
                                     |  Differential Revisions:
-------------------------------------+-------------------------------------

Comment (by simonpj):

 Humph.  In one sense the constraint IS redundant: you simply don't need
 the evidence (dictionary) for `Add a b ab` to create evidence for `Add
 (Succ a) b (Succ ab)`.

 But you want nevertheless to allow this (or not warn about it), because
 you want to prove
 things like `Add (Succ Zero) beta (Succ Zero)`, by unifying `beta :=
 Zero`.  That won't happen unless you generate the constraint `Add Zero
 beta Zero`.

 Hmm, well I suppose we should suppress the warnings where there are
 functional dependencies. I'll work on it.

 Simon

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


More information about the ghc-tickets mailing list