导出构造函数

要导出类型及其所有构造函数,必须使用以下语法:

 placeholderCopymodule X (Person (..)) where

因此,对于名为 People.hs 的文件中的以下顶级定义:

 placeholderCopydata Person = Friend String | Foe deriving (Show, Eq, Ord)

isFoe Foe = True
isFoe _   = False

顶部的这个模块声明:

 placeholderCopymodule People (Person (..)) where

只会输出 Person 及其构造函数 FriendFoe

如果省略 module 关键字后面的导出列表,则将导出绑定在模块顶层的所有名称:

 placeholderCopymodule People where

将导出 Person,其构造函数和 isFoe 函数。