Hello *, I'd like to point your attention to
https://ghc.haskell.org/trac/ghc/ticket/8695 which brings up the issue what the results operations such as * `div minBound (-1)` * `quot minBound (-1)` * `abs minBound` shall result in for the standard H2010 fixed-width signed types such as `Int`, that is whether ⊥ (arithmetic overflow-exception) or `minBound` is the more appropriate result. Relevant sections from the Haskell 2010 report: (http://www.haskell.org/onlinereport/haskell2010/haskellch6.html#x13-1350006.4) | 6.4. Numbers | | [...] The results of exceptional conditions (such as overflow or | underflow) on the fixed-precision numeric types are undefined; an | implementation may choose error (⊥, semantically), a truncated value, | or a special value such as infinity, indefinite, etc. ...which seems contradictory to... (http://www.haskell.org/onlinereport/haskell2010/haskellch18.html#x26-22400018.1) | * 18.1. Signed integer types | | This module provides signed integer types of unspecified width (Int) | and fixed widths (Int8, Int16, Int32 and Int64). All arithmetic is | performed modulo 2^n, where n is the number of bits in the type. | [...] Would a Haskell 2010 implementation which turns *every* integer over/underflow (even those for addition or multiplication of 'Int' values whose result would lie outside of [minBound..maxBound]) into a arithmetic exception be a valid H2010 implementation? -- hvr _______________________________________________ Haskell-prime mailing list Haskell-prime@haskell.org http://www.haskell.org/mailman/listinfo/haskell-prime