pub trait HasValues<F: Func + ?Sized> {
// Required methods
fn values<'a>(&'a self, f: &'a F) -> Box<dyn Iterator<Item = F::Value> + 'a>;
fn values_mut<'a>(
&'a mut self,
g: &'a mut F,
) -> Box<dyn Iterator<Item = &'a mut F::Value> + 'a>
where F: 'a;
}