Ik wil een instance van MArray creëren, maar de newArray_ kan ik niet goed definiëren.
Dit is mijn functie newArray_. Ik probeer hier 2 keer zoveel ruimte te maken.
Dit is de error:
Compiling Try ( try.hs, interpreted )
try.hs:41:
Could not deduce (Num i)
from the context (MArray IOUArray Foo IO,
HasBounds IOUArray,
Monad IO,
Ix i)
Probable fix:
Add (Num i) to the class or instance method `newArray_'
arising from use of `+' at try.hs:41
In the first argument of `newArray_', namely
`(fst x, (snd x) + (snd x))'
In the definition of `newArray_':
newArray_ (fst x, (snd x) + (snd x))
Failed, modules loaded: none.
Ik heb al op heel veel manier geprobeerd iets met die probable fix te doen, maar het blijft simpelweg niet werken.
P.S. Weet iemand misschien waar ik ergens documentatie over unsafeWrite en unsafeRead kan vinden? Ik heb daar al wel de functies voor mijn instance voor geschreven, maar in de documentatie van GHC kan ik daar niets over vinden.
Dit is mijn functie newArray_. Ik probeer hier 2 keer zoveel ruimte te maken.
code:
1
2
3
| datatype Foo = Foo Int Int
instance MArray IOUArray Foo IO where
newArray_ x = newArray_ (fst x,snd x+snd x) |
Dit is de error:
Compiling Try ( try.hs, interpreted )
try.hs:41:
Could not deduce (Num i)
from the context (MArray IOUArray Foo IO,
HasBounds IOUArray,
Monad IO,
Ix i)
Probable fix:
Add (Num i) to the class or instance method `newArray_'
arising from use of `+' at try.hs:41
In the first argument of `newArray_', namely
`(fst x, (snd x) + (snd x))'
In the definition of `newArray_':
newArray_ (fst x, (snd x) + (snd x))
Failed, modules loaded: none.
Ik heb al op heel veel manier geprobeerd iets met die probable fix te doen, maar het blijft simpelweg niet werken.
P.S. Weet iemand misschien waar ik ergens documentatie over unsafeWrite en unsafeRead kan vinden? Ik heb daar al wel de functies voor mijn instance voor geschreven, maar in de documentatie van GHC kan ik daar niets over vinden.