隱藏匯入
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
代替。