Changes to integer-gmp

Changes to integer-gmp:
commit 2f841fdf5b33c4eb32cfc5d1b8207585f1880d9a
Author: Herbert Valerio Riedel <hvr@gnu.org>
Date:   Sun Feb 2 12:18:20 2014 +0100

    Fix negation of `divMod`/`quotRem` results (fixes #8726)

    High-level pseudo code of what the code was supposed to implement:

        quotRem' :: Integer -> Integer -> (Integer,Integer)
        quotRem' a b@(S# _)
          | b < 0     = negFst . uncurry quotRem' . negSnd $ (a,b)
          | otherwise = quotRemUI a (fromIntegral (abs b))

        divMod' :: Integer -> Integer -> (Integer,Integer)
        divMod' a b@(S# _)
          | b < 0      = negSnd . uncurry divMod' . negBoth $ (a,b)
          | otherwise  = divModUI a (fromIntegral b)

        negFst  (q,r) = (-q,r)
        negSnd  (q,r) = ( q,-r)
        negBoth (q,r) = (-q,-r)

        -- quotRemUI and divModUI represent GMP's `mpz_{f,t}div_qr_ui()`
        quotRemUI, divModUI :: Integer -> Word -> (Integer,Integer)

    Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>