pub fn grad<IN, OUT, F>(func: F) -> GradFunc<IN, OUT, F>where F: Func<IN, OUT> + Clone, IN: Value, OUT: Value,