pub fn map<'a, G, T, U, F>(guard: G, f: F) -> <G as Guard<'a, T>>::Mapped<U>where F: FnOnce(&T) -> &U, G: Guard<'a, T>, T: ?Sized,