George Russell <[EMAIL PROTECTED]> writes: > (1) succ & pred. These appear for float to correspond to adding or subtracting > 1.0. (I am finding this out by testing with ghci; it's not specified where > it should be, in section 6.3.4 of the standard). Because of rounding errors, > succ and pred fail many of the properties for float they have for integers, EG > succ . pred = pred . succ = id > succ x > x > and so on.
Quite a few pbs with overflow on Int too: i :: Int i = 0x7fffffff i_plus_1 = i+1 -- ghc : -2147483648 -- hugs: -2147483648 i_succ = succ i -- ghc : *** Exception: Prelude.Enum.succ{Int}: tried to take `succ' of maxBound -- hugs: -2147483648 j :: Int j = 0x80000000 -- ghc : -2147483648 -- hugs: Program error: {primIntegerToInt 2147483648} k :: Int k = 0x100000000 -- ghc : 0 -- hugs: Program error: {primIntegerToInt 4294967296} i':: Integer i'= 0x7fffffff i_plus_1' = i+1 -- ghc : 2147483648 -- hugs: 2147483648 i_succ' = succ i' -- ghc : 2147483648 -- hugs: -2147483648 _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell