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

The*_*ive 2 haskell ghc

我最近开始使用Sublime Text进行编码.这引起了我的注意,当我使用Leksah时,我没有注意到一些警告.所以我得到了这个:

import qualified Data.Set as S
Run Code Online (Sandbox Code Playgroud)

得到:

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()
Run Code Online (Sandbox Code Playgroud)

另一方面,这两个进口中的Data.Foldable任何一个都没有发出任何警告:

import Data.Foldable (foldrM, mapM_,foldr,foldl',concat)
-- or
import Data.Foldable
Run Code Online (Sandbox Code Playgroud)

所以我不确定Data.Set的警告意味着什么.我希望"多余"意味着它没有必要.如果我删除导入它不会编译,因为我正在为Data.Set使用很多东西.

同时坐在它旁边import qualified Data.Map as M也没有发出警告.

所以我对这个警告所说的完全感到困惑.

zig*_*zou 6

它通常意味着:

  • 你导入一个模块,但你根本不使用它,
  • 导入已导入的另一个模块已导入的模块.

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

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

尝试删除显示错误的行,它经常工作;-)