pub trait Differentiable<Args>where Self: Evaluate<Args>, Args: Params,{ type Grad; // Required method fn grad(&self, args: Args) -> Self::Grad; }