首页 > 解决方案 > 导入作为 Haskell 中的运算符的类型族

问题描述

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

type family (m :: Nat) + (n :: Nat) :: Nat 

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

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


我正在使用 GHC 8.6.5

标签: haskellimportoperatorstype-families

解决方案


手册

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

import M( type (+) )

推荐阅读