[GHC] #5248: Infer type context in a type signature

GHC cvs-ghc at haskell.org
Fri Jun 10 12:05:23 CEST 2011


#5248: Infer type context in a type signature
----------------------------------------+-----------------------------------
    Reporter:  gidyn                    |        Owner:                           
        Type:  feature request          |       Status:  new                      
    Priority:  normal                   |    Milestone:                           
   Component:  Compiler (Type checker)  |      Version:  7.0.3                    
    Keywords:                           |     Testcase:                           
   Blockedby:                           |   Difficulty:                           
          Os:  Unknown/Multiple         |     Blocking:                           
Architecture:  Unknown/Multiple         |      Failure:  GHC rejects valid program
----------------------------------------+-----------------------------------

Comment(by gidyn):

 I'm not following; perhaps I'm thinking too much like an OO programmer.

 To use a simpler example,

 {{{
 data Pair a = Eq a => Pair {x::a, y::a}

 equal :: Eq a => Pair a -> a -> Bool
 equal pair z = (x pair) == (y pair) && (x pair) == z
 }}}

 Whenever we see Pair a, we know that Eq a. Nevertheless, the type
 signature for equal must be augmented with a redundant Eq a => Pair a. If
 I have two dozen functions relying on the Eq-ness of Pair a, that's two
 dozen redundant type contexts.

 Eq a => Pair should not need to be inferred from the definition of equal,
 as it is stated explicitly in the definition of Pair.

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



More information about the Glasgow-haskell-bugs mailing list