pub trait Lens<T, U>: Clone + Copy + 'static { fn focus<'a>(&self, data: &'a T) -> &'a U; fn focus_mut<'a>(&self, data: &'a mut T) -> &'a mut U; }