#7856: Wrong error message for unknown Instance
----------------------------------------------+-----------------------------
Reporter:  bas                                |          Owner:                 
        
    Type:  feature request                    |         Status:  new            
        
Priority:  normal                             |      Component:  Compiler (Type 
checker)
 Version:  7.6.3                              |       Keywords:  Instance       
        
      Os:  Unknown/Multiple                   |   Architecture:  
Unknown/Multiple       
 Failure:  Incorrect warning at compile-time  |      Blockedby:                 
        
Blocking:                                     |        Related:                 
        
----------------------------------------------+-----------------------------
 This type-incorrect program gives a wrong error message:

 {{{
 main = tmp "hello"
   where tmp :: String -> IO ()
         tmp = sequence_ lst
         lst = [putStrLn "hi"]
 }}}

 Namely:

 {{{
     Couldn't match expected type `IO ()' with actual type `()'
     Expected type: String -> IO ()
       Actual type: String -> ()
     In the return type of a call of `sequence_'
     In the expression: sequence_ lst
 }}}

 I would not expect the "actual type" to be "String -> ()", but rather "IO
 ()". Note: GHC expects that "(->) String" is a monad.

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

_______________________________________________
ghc-tickets mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/ghc-tickets

Reply via email to