pub fn reduce<T, const N: usize, R>(array: [T; N], reduce: R) -> Option<T>where R: FnMut(T, T) -> T + Destruct,