-- | /O(n)/ Yield the longest prefix of elements satisfying the predicate
-- without copying.
takeWhile :: G.Vector (Vector k) (Rec (TaggedFunctor Identity) rs)
  => (Rec (TaggedFunctor Identity) rs -> Bool) -> (Vector k) (Rec (TaggedFunctor Identity) rs) -> (Vector k) (Rec (TaggedFunctor Identity) rs)
takeWhile = G.takeWhile
takeWhile :: G.Vector (Vector k) (Rec (TaggedFunctor Identity) rs)
  => (Rec (TaggedFunctor Identity) rs -> Bool) -> (Vector k) (Rec (TaggedFunctor Identity) rs) -> (Vector k) (Rec (TaggedFunctor Identity) rs)
takeWhile = G.takeWhile
takeWhile = G.takeWhile