-- | /O(n)/ Drop elements that do not satisfy the predicate which is applied to
-- values and their indices
ifilter :: G.Vector (Vector k) (Rec (TaggedFunctor Identity) rs)
  => (Int -> Rec (TaggedFunctor Identity) rs -> Bool) -> (Vector k) (Rec (TaggedFunctor Identity) rs) -> (Vector k) (Rec (TaggedFunctor Identity) rs)
ifilter = G.ifilter
ifilter :: G.Vector (Vector k) (Rec (TaggedFunctor Identity) rs)
  => (Int -> Rec (TaggedFunctor Identity) rs -> Bool) -> (Vector k) (Rec (TaggedFunctor Identity) rs) -> (Vector k) (Rec (TaggedFunctor Identity) rs)
ifilter = G.ifilter
ifilter = G.ifilter