pub trait Mutate { // Provided method fn mutate<F>(self, f: F) -> Self where Self: Sized, F: FnOnce(&mut Self) { ... } }