[Haskell] Module

1. 导入

(1)import Data.List
导入Data.List.*,但是不会导入子模块

(2)import Data.List (permutations, subsequence)
只导入Data.List模块中的permutationssubsequence

(3)import Data.List hiding (head, tail)
导入Data.List.*,除了headtail

(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

注:
如果不导出值构造器,其他模块中如果用到值构造器产生编译错误

你可能感兴趣的:([Haskell] Module)