pub trait Writable<Root, Value>: Readable<Root, Value> {
// Required methods
fn get_mut<'a>(&self, root: &'a mut Root) -> &'a mut Value;
fn get_mut_fn(&self) -> for<'a> fn(&'a mut Root) -> &'a mut Value;
// Provided method
fn iter_mut<'a>(
&self,
slice: &'a mut [Root],
) -> Box<dyn Iterator<Item = &'a mut Value> + 'a>
where Self: Sized { ... }
}