我的模块公式中有这些数据:
data Formula = Formula {
typeFormula :: String,
nbClauses :: Int,
nbVars :: Int,
clauses :: Clauses
}
我想导出它,但我不知道正确的语法:
module Formula (
Formula ( Formula ),
solve
) where
有人可以告诉我正确的语法吗?
答案 0 :(得分:4)
您的一些困惑来自于与您尝试导出的构造函数具有相同的模块名称。
module Formula (
Formula ( Formula ),
solve
) where
应该是
module Formula (
Formula (..),
solve
) where
或者
module Formula (
module Formula ( Formula (..)),
solve
) where
您当前的导出语句在Module Forumla中导出模块公式中定义的类型Formula
和函数solve(即模块的范围,无论它在何处定义))
(..)
语法表示导出前一个类型的所有构造函数。在您的情况下,它等同于显式
module Formula (
Formula (typeFormula,nbClauses, nbVars,clauses),
solve
) where