据我了解,一元减号是Haskell中唯一的一元运算符,它必然会Num
negate
?有没有办法将一元减号重新绑定到不同类型类中的negate
?
答案 0 :(得分:4)
试试the RebindableSyntax extension。它允许一元减号指代任何"否定"在范围内。正如docs say:
- 否定(例如“ - (f x)”)表示“否定(f x)”,无论是数字模式还是表达式。
编译器对此约定进行了硬编码,但只要您
就可以说服RebindableSyntax
,隐式启用NoImplicitPrelude
; negate
;和negate
。