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

时间:2015-01-24 03:13:04

标签: haskell ghc

我最近开始使用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的警告意味着什么。我希望"多余"意味着它没有必要。如果我删除导入它不会编译,因为我使用了大量的Data.Set。

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

所以我对这个警告的内容完全感到困惑。

1 个答案:

答案 0 :(得分:6)

通常意味着:

  • 导入模块,但根本不使用它,
  • 导入已导入的其他模块已导入的模块。

可能是您不再使用模块的某些重构的影响。或者您可能通过导入它预期将来使用此模块。

使用-Wall选项编译项目时会生成此消息。

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