pub trait StalinFind<T> {
// Required methods
fn len(&self) -> usize;
fn is_empty(&self) -> bool;
fn stalin(&mut self, i: T, l: usize, r: usize) -> Option<usize>
where T: PartialEq + PartialOrd;
// Provided method
fn stalin_find(&mut self, i: T) -> Option<usize>
where T: PartialEq + PartialOrd { ... }
}