导出构造函数
要导出类型及其所有构造函数,必须使用以下语法:
module X (Person (..)) where
因此,对于名为 People.hs
的文件中的以下顶级定义:
data Person = Friend String | Foe deriving (Show, Eq, Ord)
isFoe Foe = True
isFoe _ = False
顶部的这个模块声明:
module People (Person (..)) where
只会输出 Person
及其构造函数 Friend
和 Foe
。
如果省略 module 关键字后面的导出列表,则将导出绑定在模块顶层的所有名称:
module People where
将导出 Person
,其构造函数和 isFoe
函数。