隐藏导入
Prelude 通常定义其名称在别处使用的函数。不隐藏此类导入(或使用发生冲突的合格导入)将导致编译错误。
Data.Stream
定义了名为 map
,head
和 tail
的函数,它们通常与 Prelude 中定义的函数冲突。我们可以使用 hiding
隐藏 Prelude 中的那些导入:
import Data.Stream -- everything from Data.Stream
import Prelude hiding (map, head, tail, scan, foldl, foldr, filter, dropWhile, take) -- etc
实际上,需要太多的代码来隐藏这样的 Prelude 冲突,所以你实际上会使用 qualified
导入 Data.Stream
代替。