On 28/03/2010, at 09:47, Lennart Augustsson wrote:
> It's important to switch from mod to rem. This can be done by a
> simple abstract interpretation.
Also, changing the definition of rem from
a `rem` b
| b == 0 = divZeroError
| a == minBound && b == (-1) = overflowError
| otherwise = a `remInt` b
to
a `rem` b
| b == 0 = divZeroError
| b == (-1) && a == minBound = overflowError
| otherwise = a `remInt` b
speeds up the GHC version by about 20%. Figuring out why is left as an exercise
to the reader :-)
Roman
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe