合格导入
当多个模块按名称定义相同的函数时,编译器会抱怨。在这种情况下(或提高可读性),我们可以使用 qualified 导入:
import qualified Data.Stream as D
现在我们可以在使用 map 时防止模糊编译器错误,map 在 Prelude 和 Data.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 等。