[Haskell-cafe] Trying to write 'safeFromInteger'
Henning Thielemann
lemming at henning-thielemann.de
Tue Apr 7 17:43:31 EDT 2009
On Tue, 7 Apr 2009, Max Rabkin wrote:
> The problem with your code is that the type of maxBound is
> unspecified. You need (maxBound `asTypeOf` i), or enable
> ScopedTypeVariables and use (maxBound :: a) (I think).
i is Integer, so asTypeOf is not so easy to apply. I propose to write
safeFromIntegerAux :: (Num a, Integral a) =>
a -> Integer -> Maybe a
safeFromIntegerAux mb i =
if i > toInteger mb
then Nothing
else Just (fromInteger i)
safeFromInteger = safeFromIntegerAux maxBound
Btw. this is another instance where my beloved toMaybe function is useful. :-)
http://hackage.haskell.org/packages/archive/utility-ht/0.0.4/doc/html/Data-Maybe-HT.html#v%3AtoMaybe
More information about the Haskell-Cafe
mailing list