合格导入

当多个模块按名称定义相同的函数时,编译器会抱怨。在这种情况下(或提高可读性),我们可以使用 qualified 导入:

import qualified Data.Stream as D

现在我们可以在使用 map 时防止模糊编译器错误,mapPreludeData.Stream 中定义:

map (== 1) [1,2,3] -- will use Prelude.map
D.map (odd) (fromList [1..]) -- will use Data.Stream.map

也可以导入一个模块,只有通过 import Data.Text as T 认证的冲突名称,这允许一个人拥有 Text 而不是 T.Text 等。