pub fn differentiate<T, const N: usize>( array: [T; N] ) -> [<T as Sub<T>>::Output; { _ }]where T: Sub<T> + Copy + Destruct,