[GHC] #9323: Confusing type error behaviour
GHC
ghc-devs at haskell.org
Thu Jul 17 08:59:40 UTC 2014
#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
More information about the ghc-tickets
mailing list