如何将Foldable类导入到我的模块中?

时间:2011-10-30 21:32:17

标签: haskell

以下import语句与foldr等发生冲突。因为第一个import语句似乎将Data.Foldable中的所有函数导入到我的模块中:

import Data.Foldable (Foldable (..))
import qualified Data.Foldable as Foldable (foldr, foldl, foldr1, foldl1, foldMap)

此导入语句似乎有效。然而,可折叠类现在可折叠。可折叠:

import qualified Data.Foldable as Foldable (Foldable (..), foldr, foldl, foldr1, foldl1, foldMap)

2 个答案:

答案 0 :(得分:9)

foldr等是Foldable的类方法,因此它们在第一个版本中被import Data.Foldable (Foldable(..))导入不合格。 要仅导入不合格的类,而不是其方法,请使用

import Data.Foldable (Foldable)
import qualified Data.Foldable as Foldable

答案 1 :(得分:2)

你必须隐藏Prelude模块中的文件夹

import Prelude hiding (foldr)