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