#if SIZEOF_W == 4
#define W_SHIFT 2
#elif SIZEOF_W == 8
-#define W_SHIFT 4
+#define W_SHIFT 3
#endif
/* Converting quantities of words to bytes */
/* The offset of the payload of an array */
#define BYTE_ARR_CTS(arr) ((arr) + SIZEOF_StgArrWords)
+/* The number of words allocated in an array payload */
+#define BYTE_ARR_WDS(arr) ROUNDUP_BYTES_TO_WDS(StgArrWords_bytes(arr))
+
/* Getting/setting the info pointer of a closure */
#define SET_INFO(p,info) StgHeader_info(p) = info
#define GET_INFO(p) StgHeader_info(p)