[GHC] #7862: Could not deduce (A) from the context (A, ...)

GHC cvs-ghc at haskell.org
Fri May 3 11:45:28 CEST 2013


#7862: Could not deduce (A) from the context (A, ...)
----------------------------------------+-----------------------------------
    Reporter:  alang9                   |       Owner:                           
        Type:  bug                      |      Status:  new                      
    Priority:  normal                   |   Milestone:                           
   Component:  Compiler (Type checker)  |     Version:  7.6.2                    
    Keywords:                           |          Os:  Linux                    
Architecture:  x86_64 (amd64)           |     Failure:  GHC rejects valid program
  Difficulty:  Unknown                  |    Testcase:                           
   Blockedby:                           |    Blocking:                           
     Related:                           |  
----------------------------------------+-----------------------------------

Comment(by simonpj):

 OK, so now we get (from the original program)
 {{{
 T7862a.hs:17:24:
     Overlapping instances for Num (Tower s0 a)
       arising from a use of ‛<+>’
     Matching givens (or their superclasses):
       (Num (Tower s a))
         bound by the instance declaration at T7862a.hs:14:10-36
     Matching instances:
       instance Num a => Num (Tower s a) -- Defined at T7862a.hs:19:10
     (The choice depends on the instantiation of ‛a, s0’)
     In the expression: (Tower as) <+> (Tower as)
 }}}
 which is better but not good.  For two reasons:
  * The "matching given" comes from one of the "silent supperclass"
 parameters, which is confusing to the user.
  * The whole thing is really due to the ambiguity of `s0`, and that's not
 even reported.

 The reason we are careful about overlap between givens and instances is
 desribed in `Note [Instance and Given overlap]` in `TcInteract`.

 I'm not sure what to do here. I'm expecting it's not a show-stopper for
 you: just add a type signature to resolve the ambiguity.

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



More information about the ghc-tickets mailing list