从模块导出类型运算符

Sho*_*hou 11 haskell types module type-level-computation

你如何出口类型操作符?考虑到它们可以与普通运算符冲突,如果可能的话必须有一个特殊的语法.

Sho*_*hou 14

我在GHC用户指南的7.4.4节中找到了答案,其中指出:

现在进口和出口清单存在一些潜在的模糊性; 例如,如果你写import M( (+) ),你的意思是函数 (+)或类型构造函数 (+)?默认值是前者,但有-XExplicitNamespaces(暗示-XExplicitTypeOperators)GHC允许您通过在关键字前面指定后者type,因此:

import M( type (+) )
Run Code Online (Sandbox Code Playgroud)

虽然看起来你实际上并不需要指定-XExplicitNamespaces,但也许-XExplicitTypeOperators是一个错字-XTypeOperators.一些更实证的证据:

? ? :set -XExplicitTypeOperators
Some flags have not been recognized: -XExplicitTypeOperators
Run Code Online (Sandbox Code Playgroud)

  • 请在GHC Trac上提交针对该文档的错误报告.如果你不想,请告诉我,我会这样做.事实上,让我知道任何一种方式:). (2认同)