[GHC] #9881: GHCi gives misleading error message when looking up info of ambiguous type
GHC
ghc-devs at haskell.org
Fri Dec 12 20:25:59 UTC 2014
#9881: GHCi gives misleading error message when looking up info of ambiguous type
-------------------------------------+-------------------------------------
Reporter: RyanGlScott | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: GHCi | Version: 7.8.3
Keywords: | Operating System:
Architecture: Unknown/Multiple | Unknown/Multiple
Difficulty: Unknown | Type of failure: Other
Blocked By: | Test Case:
Related Tickets: | Blocking:
| Differential Revisions:
-------------------------------------+-------------------------------------
When GHCi imports multiple functions with the same name, using {{{:i}}}
results in an ambiguous occurrence error:
{{{
> import Data.Text
> import Data.Text.Lazy
> :i length
Top level:
Ambiguous occurrence ‘length’
It could refer to either ‘Data.Text.Lazy.length’,
imported from ‘Data.Text.Lazy’
or ‘Prelude.length’,
imported from ‘Prelude’ (and originally
defined in ‘GHC.List’)
or ‘Data.Text.length’, imported from ‘Data.Text’
}}}
However, if you use {{{:i}}} on a type name that has imported multiple
times in GHCi, a misleading error is given:
{{{
> import Data.Text
> import Data.Text.Lazy
> :i Text
Top level: Not in scope: data constructor ‘Text’
}}}
The real problem is that the type name {{{Text}}} was imported twice with
two different definitions, so the error should probably look something
like this:
{{{
Top level:
Ambiguous occurrence ‘Text’
It could refer to either ‘Data.Text.Lazy.Text’,
imported from ‘Data.Text.Lazy’ (and
originally defined in ‘Data.Text.Internal.Lazy’)
or ‘Data.Text.Text’,
imported from ‘Data.Text’ (and originally
defined in ‘Data.Text.Internal‘)
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9881>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list