pub trait Slice:
IndexMut<Range<usize>, Output = Self>
+ IndexMut<RangeTo<usize>, Output = Self>
+ IndexMut<RangeFrom<usize>, Output = Self> {
// Required methods
fn len(&self) -> usize;
fn transform_index(&self, index: usize) -> usize;
// Provided method
fn is_empty(&self) -> bool { ... }
}