When defining a new trait it is possible to enforce that types wishing to implement this trait verify a number of constraints or bounds.
Taking an example from the standard library, the DerefMut trait requires that a type first implement its sibling Deref trait:
pub trait DerefMut: Deref {
fn...