-- Extracting subvectors (slicing)
-- -------------------------------

-- | /O(1)/ Yield a slice of the vector without copying it. The vector must
-- contain at least @i+n@ elements.
slice :: G.Vector (Vector k) (Rec (TaggedFunctor Identity) rs)
      => Int   -- ^ @i@ starting index
      -> Int   -- ^ @n@ length
      -> (Vector k) (Rec (TaggedFunctor Identity) rs)
      -> (Vector k) (Rec (TaggedFunctor Identity) rs)
slice = G.slice
slice :: G.Vector (Vector k) (Rec (TaggedFunctor Identity) rs)
      => Int   -- ^ @i@ starting index
      -> Int   -- ^ @n@ length
      -> (Vector k) (Rec (TaggedFunctor Identity) rs)
      -> (Vector k) (Rec (TaggedFunctor Identity) rs)
slice = G.slice
slice = G.slice