[GHC] #12395: Misleading GHCi errors when package is installed

GHC ghc-devs at haskell.org
Thu Jul 14 19:58:18 UTC 2016


#12395: Misleading GHCi errors when package is installed
-------------------------------------+-------------------------------------
           Reporter:  crockeea       |             Owner:
               Type:  bug            |            Status:  new
           Priority:  normal         |         Milestone:
          Component:  GHCi           |           Version:  8.0.1
           Keywords:                 |  Operating System:  Unknown/Multiple
       Architecture:                 |   Type of failure:  Incorrect
  Unknown/Multiple                   |  warning at compile-time
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 When a package is installed in a cabal sandbox/global package directory
 and code is loaded with GHCi when a file has been deleted, GHCi gives very
 misleading errors.

 First, if we don't install the package, we get the correct error/expected
 result:
 {{{
 > mv B.hs B.hs.old
 > ghci Main.hs
 Main.hs:3:1: error:
     Failed to load interface for ‘B’
     Use -v to see a list of the files searched for.
 Failed, modules loaded: A.
 }}}

 But if we first install the package, we get a very strange error:
 {{{
 > mv B.hs.old B.hs
 > cabal install
 > mv B.hs B.hs.old
 > ghci Main.hs
 Main.hs:6:14: error:
     Ambiguous occurrence ‘str’
     It could refer to either ‘A.str’,
                              imported from ‘A’ at Main.hs:2:1-8
                              (and originally defined at A.hs:7:1-3)
                           or ‘B.str’,
                              imported from ‘B’ at Main.hs:3:1-8 (and
 originally defined in ‘A’)
 Failed, modules loaded: A.
 }}}

 I'm using GHC 8.0.1, cabal-install-1.24.0.0, and Cabal Library-1.24.0.0.

 This is Very Annoying because I use this process to minimize examples. For
 example, when I want to simplify code by removing a module, I just delete
 it and then rely on GHCi to tell me what I need to update. Anyone not
 aware of this bug would be totally confused by the error, and even though
 I do know about the bug, the error is completely unhelpful.

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


More information about the ghc-tickets mailing list