pub fn linearize<'a, K, IN, OUT, F>( func: F, input: IN, ) -> (OUT, impl Fn(IN::Gradient) -> OUT::Gradient + Clone + 'a)where F: Func<K, IN, OUT> + Clone + 'a, IN: Value, OUT: Value,