use std::fmt::Debug;
use num_traits::Num;
pub trait Number: Num
+ PartialOrd
+ Debug
+ Clone + Copy {}
impl<T> Number for T
where T: Num
+ PartialOrd
+ Debug
+ Clone + Copy {}
pub trait Function<T>: Fn(&T, &Vec<T>) -> Vec<T>
where T: Number {}
impl<T, F> Function<T> for F
where T: Number,
F: Fn(&T, &Vec<T>) -> Vec<T> {}