隐藏数据类型的构造函数

str*_*lep 13 haskell abstraction module interface

导入某些数据类型时,需要将(..)用于导入构造函数.

是否可以阻止导出某些数据类型的构造函数,即使导出该数据类型也是如此?

GS *_*ica 15

是的,只需在导出它们时使用相同的语法 - Foo()只需导出类型,Foo(..)导出类型和所有构造函数,然后Foo(FooC1,FooC2)只导出该类型的命名构造函数.

  • 只是导出列表中的"Foo"足以省略构造函数. (8认同)
  • @Anthony:我定期重新发现这个事实,首先忘记它,然后想知道为什么我的构造函数不在范围内...... (3认同)
  • FWIW我更喜欢明确表示我没有导出任何构造函数. (3认同)