[MLton] Packing and IntInf

Chris Clearwater chris@sharkzone.com
Wed, 19 May 2004 03:33:30 -0700


From the user-guide:
     MLton represents an arbitrary precision integer either as an
     unboxed 32 bit word with the bottom bit set to 1 and the top 31
     bits representing a small integer in [-2^30, 2^30), or as a pointer
     to a vector of words where the first word indicates the sign and
     the rest are the limbs of GNUmp big integer.

Is this special representation necceary with the new packer? Could you
instead use the natural representation of:
        datatype t = Small of Int31.int | Big of bool * word vector
and have the packer decide on a similar representation ?