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