【发布时间】:2016-12-15 12:26:04
【问题描述】:
为什么5 :: Sum Integer 在解释器中工作但给出了一个
newtype NovoTipo a = NovoTipo a
6 :: NovoTipo Integer 不起作用?
【问题讨论】:
为什么5 :: Sum Integer 在解释器中工作但给出了一个
newtype NovoTipo a = NovoTipo a
6 :: NovoTipo Integer 不起作用?
【问题讨论】:
您可以为具有Num 实例的任何类型编写数字文字。 Sum has it,而你的新类型没有。
您可以通过以下方式在 ghci 中启用GeneralizedNewtypeDeriving:
:set -XGeneralizedNewtypeDeriving
然后你可以写:
newtype NovoTipo a = NovoTipo a deriving (Num)
然后6 :: NovoTipo Integer 的类型很好。
【讨论】: