Confusing error message from GHCI - "defined in multiple files" shows the same file
I just had the following very confusing exchange with GHCI:
```
λ :load
Ok, modules loaded: none.
λ :load src/Application/Aws.hs
Ok, modules loaded: Application.Aws (dist/build/Application/Aws.o).
λ private
<interactive>:3:1: error: Variable not in scope: private
λ :m *Application.Aws
module 'Application.Aws' is not interpreted; try ':add *Application.Aws' first
λ :add *Application.Aws
<no location info>: error:
module ‘circuithub-api-0.0.4-EeGo4QUTODrB58BZrr3htj:Application.Aws’ is defined in multiple files: src/Application/Aws.hs
src/Application/Aws.hs
Failed, modules loaded: Application.Aws (dist/build/Application/Aws.o).
λ :! ghc --version
The Glorious Glasgow Haskell Compilation System, version 8.1.20161115
```
This can really be simplified to
```
λ :load src/Application/Aws.hs
Ok, modules loaded: Application.Aws (dist/build/Application/Aws.o).
λ :add *Application.Aws
<no location info>: error:
module ‘circuithub-api-0.0.4-EeGo4QUTODrB58BZrr3htj:Application.Aws’ is defined in multiple files: src/Application/Aws.hs
src/Application/Aws.hs
Failed, modules loaded: Application.Aws (dist/build/Application/Aws.o).
```
For the record, here is Application.Aws:
```hs
{-# LANGUAGE DeriveDataTypeable #-}
module Application.Aws
( AwsExtra(..)
) where
import Prelude
import Data.Data (Data)
import Data.ByteString.Char8
import Data.Text
data AwsExtra = AwsExtra
{ awsKey :: ByteString
, awsSecret :: ByteString
, awsS3AssetsBucket :: Text
} deriving (Show,Data)
private :: Int
private = 42
```
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ------------ |
| Version | 8.1 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | GHCi |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"Confusing error message from GHCI - \"defined in multiple files\" shows the same file","status":"New","operating_system":"","component":"GHCi","related":[],"milestone":"","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"8.1","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"I just had the following very confusing exchange with GHCI:\r\n\r\n{{{\r\nλ :load\r\nOk, modules loaded: none.\r\n\r\nλ :load src/Application/Aws.hs \r\nOk, modules loaded: Application.Aws (dist/build/Application/Aws.o).\r\n\r\nλ private\r\n<interactive>:3:1: error: Variable not in scope: private\r\n\r\nλ :m *Application.Aws\r\nmodule 'Application.Aws' is not interpreted; try ':add *Application.Aws' first\r\n\r\nλ :add *Application.Aws\r\n<no location info>: error:\r\n module ‘circuithub-api-0.0.4-EeGo4QUTODrB58BZrr3htj:Application.Aws’ is defined in multiple files: src/Application/Aws.hs\r\n src/Application/Aws.hs\r\nFailed, modules loaded: Application.Aws (dist/build/Application/Aws.o).\r\n\r\nλ :! ghc --version\r\nThe Glorious Glasgow Haskell Compilation System, version 8.1.20161115\r\n}}}\r\n\r\nThis can really be simplified to\r\n\r\n{{{\r\nλ :load src/Application/Aws.hs\r\nOk, modules loaded: Application.Aws (dist/build/Application/Aws.o).\r\n\r\nλ :add *Application.Aws\r\n<no location info>: error:\r\n module ‘circuithub-api-0.0.4-EeGo4QUTODrB58BZrr3htj:Application.Aws’ is defined in multiple files: src/Application/Aws.hs\r\n src/Application/Aws.hs\r\nFailed, modules loaded: Application.Aws (dist/build/Application/Aws.o).\r\n}}}\r\n\r\n\r\nFor the record, here is Application.Aws:\r\n\r\n{{{#!hs\r\n{-# LANGUAGE DeriveDataTypeable #-}\r\n\r\nmodule Application.Aws\r\n ( AwsExtra(..)\r\n ) where\r\n\r\nimport Prelude\r\n\r\nimport Data.Data (Data)\r\nimport Data.ByteString.Char8\r\nimport Data.Text\r\n\r\ndata AwsExtra = AwsExtra\r\n { awsKey :: ByteString\r\n , awsSecret :: ByteString\r\n , awsS3AssetsBucket :: Text\r\n } deriving (Show,Data)\r\n\r\nprivate :: Int\r\nprivate = 42\r\n}}}","type_of_failure":"OtherFailure","blocking":[]} -->
issue