[GHC] #9948: Recommend class constraint instead of instance constraint

GHC ghc-devs at haskell.org
Mon Jan 26 04:06:58 UTC 2015


#9948: Recommend class constraint instead of instance constraint
-------------------------------------+-------------------------------------
        Reporter:  crockeea          |                   Owner:
            Type:  feature request   |                  Status:  new
        Priority:  normal            |               Milestone:
       Component:  Compiler          |                 Version:  7.8.4
      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 rwbarton):

 I can see why you might want this behavior in some cases, but would you
 really want

 {{{
 isPalindrome :: [a] -> Bool
 isPalindrome xs = xs == reverse xs
 }}}

 to suggest adding an `Eq [a]` constraint (that's not even valid Haskell
 98!), or some function to dump a data structure to suggest adding a `Show
 [(Int, Maybe a)]` constraint?

 Whatever constraint GHC suggests, it won't be the appropriate one in every
 situation. The current behavior is the most obvious one to me (the
 suggested constraint is the same one that appears in the type that GHC
 would infer in the absence of a type signature).

 I'm also a bit confused by the workaround that you mentioned; if you know
 that `Foo` is the class containing `foo` (which you must to comment out
 its instances) then don't you already know what constraint to add? Is it
 very difficult in your use cases to work out what the parameter to the
 class should be?

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


More information about the ghc-tickets mailing list