pub fn fold_arc<T: Clone, E>( arc: Arc<T>, fold: impl FnOnce(T) -> Result<T, E>, ) -> Result<Arc<T>, E>