-- | /O(n)/ Construct a vector with at most @n@ by repeatedly applying the
-- generator function to the a seed. The generator function yields 'Just' the
-- next element and the new seed or 'Nothing' if there are no more elements.
--
-- > unfoldrN 3 (\n -> Just (n,n-1)) 10 = <10,9,8>
unfoldrN :: G.Vector (Vector k) (Rec (TaggedFunctor Identity) rs)
  => Int -> (c -> Maybe (Rec (TaggedFunctor Identity) rs, c)) -> c -> (Vector k) (Rec (TaggedFunctor Identity) rs)
unfoldrN = G.unfoldrN
unfoldrN :: G.Vector (Vector k) (Rec (TaggedFunctor Identity) rs)
  => Int -> (c -> Maybe (Rec (TaggedFunctor Identity) rs, c)) -> c -> (Vector k) (Rec (TaggedFunctor Identity) rs)
unfoldrN = G.unfoldrN
unfoldrN = G.unfoldrN