为什么5 :: Sum Integer在翻译工作,但给了一个
newtype NovoTipo a = NovoTipo a
Run Code Online (Sandbox Code Playgroud)
6 :: NovoTipo Integer 不起作用?
And*_*ács 16
您可以为具有Num实例的任何类型编写数字文字.Sum 拥有它,而你的新类型没有.
您可以GeneralizedNewtypeDeriving通过以下方式启用ghci:
:set -XGeneralizedNewtypeDeriving
Run Code Online (Sandbox Code Playgroud)
然后你可以写:
newtype NovoTipo a = NovoTipo a deriving (Num)
Run Code Online (Sandbox Code Playgroud)
然后6 :: NovoTipo Integer是好的打字.