Я понимаю, что значение Int является указателем на thunk (double intirection), а unboxed Int # - это просто указатель на 32/64 бит int. Это верно? Как указатель кодирует тот факт, что он ссылается на unboxed значение?Макет памяти в штучной упаковке и unboxed ints?
В заявлении Haskell standard указано, что Int является «целым числом с фиксированной точностью, по крайней мере с диапазоном [-2^29 .. 2^29-1]». Есть ли какая-то оптимизация в GHC, где эти дополнительные биты используются для устранения ограничений?
http://stackoverflow.com/a/3256825/83805 и http://hackage.haskell.org/trac/ghc/wiki/Commentary/Rts/Storage/HeapObjects –
@DonStewart Этот ответ просто говорит, что Int # берет слово для хранения и не является _explicit_ о том, что слово - это всего лишь целое число, ничего больше, что нужно знать OP. – AndrewC