Ich habe festgestellt, dass ich dies tun kann 1 :: Product Int
und erhalten als Ergebnis.newtype Verhalten in Haskell
Product
ist ein newtype
definiert in Data.Monoid
. Als ich habe versucht, die Definition meiner eigenen newtype
wie so:
newtype Stuff a = Stuff {getStuff :: a} deriving (Show)
Aber wenn ich versuche, 1 :: Stuff Int
zu tun bekomme ich einen Fehler:
<interactive>:20:1: error:
* No instance for (Num (Stuff Int)) arising from the literal `1'
* In the expression: 1 :: Stuff Int
In an equation for `it': it = 1 :: Stuff Int
Muss ich Num
Einschränkung auf a
oder etwas zu setzen haben? Warum funktioniert das nicht?