pub trait SliceRange { // Required method fn slice(self) -> Si; // Provided method fn step(self, step: Ixs) -> Si where Self: Sized { ... } }