Int has a tight loop for `EnumFromTo`
On the other hand look at `EnumFromTo` for word32
It calls `integralEnumFromTo`
Which is
723 integralEnumFromTo :: Integral a => a -> a -> [a]
724 integralEnumFromTo n m = map fromInteger [toInteger n .. toInteger m]
That is right you get converted to an Integer, then back again.
This seems to be the problem with all loops that use `Word32` and `EnumFromTo`.
It looks like you could add a better `EnumFromTo` for `Word32` and you would close the gap between the loops that are using `EnumFromTo` and those that are not.
Patrick