警告:`Module` 的导入是多余的,除了可能从 `Module` 导入实例

Warning: The import of `Module` is redundant except perhaps to import instances from `Module`

我最近开始使用 Sublime Text 编写代码。这让我注意到了一些我在使用 Leksah 时没有注意到的警告。所以我得到了这个:

import qualified Data.Set as S

给出:

Warning:
  The qualified import of `Data.Set' is redundant
    except perhaps to import instances from `Data.Set'
  To import instances alone, use: import Data.Set()

另一方面,来自 Data.Foldable 的这两个导入中的任何一个都没有给出任何警告:

import Data.Foldable (foldrM, mapM_,foldr,foldl',concat)
-- or
import Data.Foldable

所以我不太确定 Data.Set 的警告是什么意思。我希望 "redundant" 意味着没有必要。如果我删除导入,它不会编译,因为我为 Data.Set.

使用了很多东西

同时坐在它旁边的是 import qualified Data.Map as M,它也没有发出任何警告。

所以我对那个警告的意思完全不明白。

一般表示:

  • 你导入了一个模块,但你根本不使用它,
  • 您导入的模块已被您导入的另一个模块导入。

这可能是您不再使用该模块的某些重构的结果。或者,您可能已经通过导入预期了此模块的未来使用。

此消息是在您使用 -Wall 选项编译项目时生成的。

尝试删除显示错误的行,它通常有效;-)