//@ known-bug: #112201 pub fn compose( f1: impl FnOnce(f64) -> f64 + Clone, f2: impl FnOnce(f64) -> f64 + Clone, ) -> impl FnOnce(f64) -> f64 + Clone { move |x| f1(f2(x)) } fn repeat_helper( f: impl FnOnce(f64) -> f64 + Clone, res: impl FnOnce(f64) -> f64 + Clone, times: usize, ) -> impl FnOnce(f64) -> f64 + Clone { return res; repeat_helper(f.clone(), compose(f, res), times - 1) } fn main() {}