-- Monadic initialisation
-- ----------------------

-- | /O(n)/ Execute the monadic action the given number of times and store the
-- results in a vector.
replicateM :: (Monad m, G.Vector (Vector k) (Rec (TaggedFunctor Identity) rs))
  => Int -> m (Rec (TaggedFunctor Identity) rs) -> m ((Vector k) (Rec (TaggedFunctor Identity) rs))
replicateM = G.replicateM
replicateM :: (Monad m, G.Vector (Vector k) (Rec (TaggedFunctor Identity) rs))
  => Int -> m (Rec (TaggedFunctor Identity) rs) -> m ((Vector k) (Rec (TaggedFunctor Identity) rs))
replicateM = G.replicateM
replicateM = G.replicateM