We have some Word64-indexed types, and having to scatter fromIntegral all over to compensate outweighs the convenience of using like ifor_ f xs over for_ f (xs `zip` [0..]) in a smaller number spots.
WDYT about replacing instance FunctorWithIndex Int [] with instance Integral i => FunctorWithIndex i [], and so on?