2016-12-15 43 views

回答

16

您可以为任何具有Num实例的类型编写数字文字。 Sumhas it,而你的newtype没有。

可以在ghci中通过以下方式实现GeneralizedNewtypeDeriving

:set -XGeneralizedNewtypeDeriving 

然后,你可以写:

newtype NovoTipo a = NovoTipo a deriving (Num) 

然后6 :: NovoTipo Integer非常类型化。

+4

也许值得一提的是,没有那个扩展名,实例仍然可以提供手动(un)包装。 –