Duplicate Exports [GHC-47854]

Flag: -Wduplicate-exports
Enabled by default

An export list of a module mentions the same identifier twice.

Examples

Duplicate export

The module Example mentions the symbol answer twice in its export list.

To avoid the warning, simply remove the duplicated mention.

Error Message

Main.hs:3:25: warning: [-Wduplicate-exports] [GHC-47854]
    ‘answer’ is exported by ‘answer’ and ‘answer’
  |
3 | module Example (answer, answer) where
  |                         ^^^^^^
Main.hs
Before
module Example (answer, answer) where

answer :: Int
answer = 42
After
module Example (answer) where

answer :: Int
answer = 42
Duplicate field export

The module Example exports the symbol answer twice. In addition to the explicit entry in the export list it’s also exported by Example(..).

To avoid the warning, remove one of the duplicated mentions.

Error Message

Main.hs:1:25: warning: [-Wduplicate-exports] [GHC-47854]
    ‘answer’ is exported by ‘Example(..)’ and ‘answer’
  |
1 | module Example (answer, Example(..)) where
  |                        ^^^^^^
Main.hs
Before
module Example (answer, Example(..)) where

data Example = Example { answer :: Int }
After
module Example (Example) where

data Example = Example { answer :: Int }