<div dir="ltr">Inside GHC we mostly use Int instead of Word, even when we want to represent non-negative values, such as sizes of things or indices into things. This is now causing some grief in <a href="https://ghc.haskell.org/trac/ghc/ticket/9416">https://ghc.haskell.org/trac/ghc/ticket/9416</a>, where an allocation boundary case test fails with a segfault because a n < m Int comparison overflows.<div>

<br></div><div>I tried to fix the issue by changing the type of maxInlineAllocSize, which is used on one side of the above comparison, to Word. However, that unravels a bunch of other issues, such as wordsToBytes, ByteOff, etc are all Int-valued quantities.</div>

<div><br></div><div>I could perhaps work around these problems by judicious use of fromIntegral in StgCmmPrim, but I'm a bit unhappy about it because it 1) makes the code uglier and 2) needs to be done in quite a few places.</div>

<div><br></div><div>How much work would it be to try to switch the codegen to use Word for most of these quantities instead?</div><div><br></div><div>-- Johan</div><div><br></div></div>