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
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to