pub fn memoize<'input, P, T: Clone, ComputeFn, CacheFn>( parser: &mut P, cache_fn: CacheFn, offset: usize, compute_fn: ComputeFn, ) -> ParseResult<'input, T>where CacheFn: FnMut(&mut P) -> &mut Cache<'input, T>, ComputeFn: FnOnce(&mut P) -> ParseResult<'input, T>,