I'm not sure if there's a reason why the HeapRep constructor takes 2 WordOffs rather than 2 StgHalfWords.