pub fn retry<I, O, F>(f: F, input: I) -> Result<O, Error<I>>where F: FnMut(I) -> Result<O, Error<I>>,