8
なぜインタプリタで5 :: Sum Integer
作業を行いますがなぜ5 :: Sum Integerはリテラルとして機能しますか?
newtype NovoTipo a = NovoTipo a
6 :: NovoTipo Integer
与えられた動作しませんか?
なぜインタプリタで5 :: Sum Integer
作業を行いますがなぜ5 :: Sum Integerはリテラルとして機能しますか?
newtype NovoTipo a = NovoTipo a
6 :: NovoTipo Integer
与えられた動作しませんか?
Num
インスタンスを持つ任意のタイプの数値リテラルを記述できます。 Sum
has it、あなたのnewtypeはそうではありません。
あなたはGHCiの次の方法でGeneralizedNewtypeDeriving
を有効にすることができます。
:set -XGeneralizedNewtypeDeriving
は、その後、あなたが書くことができます。
newtype NovoTipo a = NovoTipo a deriving (Num)
そして6 :: NovoTipo Integer
がよく型付けです。
おそらく、その拡張子がないことに言及する価値はありますが、インスタンスには引き続き手動(un)ラッピングが用意されています。 –