-- | /O(n)/ Apply a function to every element of a vector and its index
imap :: (G.Vector (Vector k) (Rec (TaggedFunctor Identity) rs), G.Vector (Vector k) (Rec (TaggedFunctor Identity) ss))
     => (Int -> Rec (TaggedFunctor Identity) rs -> Rec (TaggedFunctor Identity) ss)
     -> (Vector k) (Rec (TaggedFunctor Identity) rs) -> (Vector k) (Rec (TaggedFunctor Identity) ss)
imap = G.imap
imap :: (G.Vector (Vector k) (Rec (TaggedFunctor Identity) rs), G.Vector (Vector k) (Rec (TaggedFunctor Identity) ss))
     => (Int -> Rec (TaggedFunctor Identity) rs -> Rec (TaggedFunctor Identity) ss)
     -> (Vector k) (Rec (TaggedFunctor Identity) rs) -> (Vector k) (Rec (TaggedFunctor Identity) ss)
imap = G.imap
imap = G.imap