-- | /O(n)/ Left fold (function applied to each element and its index)
ifoldl :: G.Vector (Vector k) (Rec (TaggedFunctor Identity) rs)
  => (r -> Int -> Rec (TaggedFunctor Identity) rs -> r) -> r -> (Vector k) (Rec (TaggedFunctor Identity) rs) -> r
ifoldl = G.ifoldl
ifoldl :: G.Vector (Vector k) (Rec (TaggedFunctor Identity) rs)
  => (r -> Int -> Rec (TaggedFunctor Identity) rs -> r) -> r -> (Vector k) (Rec (TaggedFunctor Identity) rs) -> r
ifoldl = G.ifoldl
ifoldl = G.ifoldl