导出构造函数

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

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 及其构造函数 FriendFoe

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

module People where

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