GHCi doesn't fully load previously broken modules
Scenario:
I have a project with three modules: Mod1, Mod2 and Mod3. Mod3 calls an undefined function and so shouldn't load. I call GHCi as
ghci Mod3.hs
The output looks like this:
GHCi, version 6.8.2: http://www.haskell.org/ghc/ :? for help Loading package base ... linking ... done. [1 of 3] Compiling Mod1 ( Mod1.hs, interpreted ) [2 of 3] Compiling Mod2 ( Mod2.hs, interpreted ) [3 of 3] Compiling Mod3 ( Mod3.hs, interpreted ) Mod3.hs:6:6: Not in scope: `foo'
Mod3.hs:6:12: Not in scope: `barf' Failed, modules loaded: Mod2, Mod1.
The problem comes when I edit the file using GHCi's :e command and then reload with :r. The output looks like this (which is strange in itself, because the modules are listed in the wrong order):
- Mod2> :r
[3 of 3] Compiling Mod3 ( Mod3.hs, interpreted ) Ok, modules loaded: Mod2, Mod3, Mod1.
The problem is this: when I call a function from Mod3 from the GHCi toplevel, I get a "not in scope" error. I can call the function as "Mod3.<function name>" but "Mod3" does not show up in GHCi's tab completion. I don't believe that this is the correct behavior.
Trac metadata
| Trac field | Value |
|---|---|
| Version | 6.8.2 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | GHCi |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | Unknown |
| Architecture | Unknown |