导出数据族实例构造函数

时间:2013-09-30 07:51:23

标签: haskell export type-families

如何导出数据族实例的构造函数?我已经尝试了各种方法但没有成功(参见注释掉的代码):

module Test (
    --Foo () (..)
    --type Foo () (..)
    --UnitBar
) where

class Foo a where
    data Bar a :: *

instance Foo () where
    data Bar () = UnitBar

我能够成功导出构造函数的唯一方法是在执行

module Test where

注意括号的缺席。这种方法的缺点是信息太多了!

1 个答案:

答案 0 :(得分:9)

使用

module Test (
    Bar(..)
) where

从相关数据系列Bar导出所有构造函数。或

module Test (
    Bar(UnitBar)
) where

仅导出单个构造函数。

您可以阅读relevant section in GHC's documentation了解详情。