returning to cost of Integer

John Meacham john at
Tue Aug 1 12:21:42 EDT 2006

On Tue, Aug 01, 2006 at 02:57:31PM +0400, Bulat Ziganshin wrote:
> John, Integer values in many cases used just to keep small numbers
> which can be larger than 2^32 (2^64) in rare cases. For example,
> "type FileSize = Integer" used in IO library. so it's important to
> keep operations on small Integers fast and use minimum amount of
> memory
> how about:
> data Integer = S# Int# | L# !(ForeignPtr MPZ)

That is more or less what it is now. The point was that turning it into
a product type (one with only a single constructor) would open it to the
various unboxing optimizations, potentially being a bigger win than
treating small integers specially.

It would be interesting to speed test some straight FFI bindings to gmp
and the various other bignum libraries out there


John Meacham - ⑆⑆john⑈

More information about the Glasgow-haskell-users mailing list