
#9323: Confusing type error behaviour -------------------------------------+------------------------------------- Reporter: simonpj | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.8.3 Resolution: | Keywords: Differential Revisions: | Operating System: Unknown/Multiple Architecture: | Type of failure: None/Unknown Unknown/Multiple | Test Case: Difficulty: Unknown | Blocking: Blocked By: | Related Tickets: | -------------------------------------+------------------------------------- Changes (by simonpj): * version: 7.8.2 => 7.8.3 Old description:
Compile this example with GHC 7.8.3. {{{ module Foo where
broken :: [Int] broken = ()
ambiguous :: a -> String ambiguous _ = show 0 }}} You get {{{ Foo.hs:4:10: Couldn't match expected type ‘[Int]’ with actual type ‘()’ In the expression: () In an equation for ‘broken’: broken = ()
Foo.hs:7:15: No instance for (Show a0) arising from a use of ‘show’ The type variable ‘a0’ is ambiguous }}} (and a similar ambiguous `(Num a0)` error).
'''But if you comment out `broken`, the program compiles.''', using the defaulting rules to choose `a0` = `Integer`.
This is obviously wrong.
Reported by Evan Laforge.
New description: Compile this example with GHC 7.8.3. {{{ module Foo where broken :: [Int] broken = () ambiguous :: a -> String ambiguous _ = show 0 }}} You get {{{ Foo.hs:4:10: Couldn't match expected type ‘[Int]’ with actual type ‘()’ In the expression: () In an equation for ‘broken’: broken = () Foo.hs:7:15: No instance for (Show a0) arising from a use of ‘show’ The type variable ‘a0’ is ambiguous }}} (and a similar ambiguous `(Num a0)` error). '''But if you comment out `broken`, the program compiles''', using the defaulting rules to choose `a0` = `Integer`. This is obviously wrong. Reported by Evan Laforge. -- Comment: Everything is fine in HEAD. (I don't know which of the many changes between 7.8 and HEAD is responsible.) I'll add a regression test. But I don't propose to fix 7.8. Simon -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9323#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler