VMI would suggest slightly more generic approach, without relying on Num : fn add<T: Add<Output=T> + Copy>(x: T) -> impl Fn(T) -> T { move | y: T | x + y }Comment·Article·Dec 23, 2018·Currying in Rust — Part 2 (A glimpse of generics)