
7 Apr
2009
7 Apr
'09
5:27 p.m.
Here's my code (in file "Test.hs") safeFromInteger :: (Num a, Integral a, Bounded a) => Integer -> Maybe a safeFromInteger i = if i > (toInteger maxBound) then Nothing else Just (fromInteger i) Here's the error from GHCi 6.10.1: Test.hs:3:19: Ambiguous type variable `a' in the constraints: `Bounded a' arising from a use of `maxBound' at Test.hs:3:19-26 `Integral a' arising from a use of `toInteger' at Test.hs:3:9-26 Probable fix: add a type signature that fixes these type variable(s) It's almost like GHC thinks that the type variable "a" can't be part of the "Bounded" lass and the "Integeral" class. I plan to use "safeFromInteger" for converting from Word8, Word16, Word32, etc.