-- | /O(n)/ Construct a vector with @n@ elements from right to left by
-- repeatedly applying the generator function to the already constructed part
-- of the vector.
--
-- > constructrN 3 f = let a = f <> ; b = f<a> ; c = f <b,a> in f <c,b,a>
--
constructrN :: G.Vector (Vector k) (Rec (TaggedFunctor Identity) rs)
  => Int -> ((Vector k) (Rec (TaggedFunctor Identity) rs) -> Rec (TaggedFunctor Identity) rs) -> (Vector k) (Rec (TaggedFunctor Identity) rs)
constructrN = G.constructrN
constructrN :: G.Vector (Vector k) (Rec (TaggedFunctor Identity) rs)
  => Int -> ((Vector k) (Rec (TaggedFunctor Identity) rs) -> Rec (TaggedFunctor Identity) rs) -> (Vector k) (Rec (TaggedFunctor Identity) rs)
constructrN = G.constructrN
constructrN = G.constructrN