1. 导入
(1)import Data.List
导入Data.List.*
,但是不会导入子模块
(2)import Data.List (permutations, subsequence)
只导入Data.List
模块中的permutations
和subsequence
(3)import Data.List hiding (head, tail)
导入Data.List.*
,除了head
和tail
(4)import Chapter3.ParamPoly (Client())
只导入类型,不导入值构造器
(5)import Chapter3.ParamPoly (Client(GovOrg,Individual))
导入类型,以及一部分值构造器
(6)import Chapter3.ParamPoly (Client(..))
导入类型,以及所有的值构造器
(7)import qualified Data.List (filter, permutations)
以带限定名的方式导入,使用方式为Data.List.filter
(8)import qualified Data.List as L
以带限定名的方式导入,并修改限定名,使用方式为L.filter
又例如,import qualified Data.List (permutations, subsequences) as L
2. 导出
(1)module M where
导出所有的type class,type,value
(2)module M (f) where
只导出f
(3)module Chapter2.DataTypes (ConnOptions(), connDefault) where
只导出ConnOptions
类型,以及导出connDefault
注:
如果不导出值构造器,其他模块中如果用到值构造器产生编译错误