导入作为Haskell运算符的类型族

rad*_*row 4 import haskell operators type-families

GHC.TypeNats 具有以下签名的导出类型族:

type family (m :: Nat) + (n :: Nat) :: Nat 
Run Code Online (Sandbox Code Playgroud)

如何显式导入?import GHC.TypeNats((+))不起作用,因为它说不GHC.TypeNats导出(+)...

当我隐式导入整个模块时,一切都可以编译,但这确实不是我想要的代码。


我正在使用GHC 8.6.5

Dan*_*ner 6

手册

现在,进出口清单中可能存在一些歧义;例如,如果编写,import M( (+) )是指函数(+)还是类型构造函数(+)?默认值是前者,但GHC 带有ExplicitNamespaces(由暗示TypeOperators)GHC允许您通过在其前面加上关键字type来指定后者,因此:

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

  • 那么如何导入 `(*)` 呢?这似乎是 GHC 9.0 中的一个解析错误。 (2认同)