pub fn update_object_throwing<A, F, E>(a: A, fs: F) -> Result<A, E>where F: FnOnce(&mut A) -> Result<(), E>,