为什么5 :: Sum Integer
在口译员中工作但给出了
newtype NovoTipo a = NovoTipo a
6 :: NovoTipo Integer
不起作用?
您可以为具有Num
实例的任何类型编写数字文字。Sum
有它,而您的新类型则没有。
您可以GeneralizedNewtypeDeriving
通过以下方式在ghci中启用:
:set -XGeneralizedNewtypeDeriving
然后您可以编写:
newtype NovoTipo a = NovoTipo a deriving (Num)
然后6 :: NovoTipo Integer
是好类型的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句