pub type append0<const N: usize, T> = Curry2<fn(_: T, _: ArrayVec<[Option<T>; N]>) -> ArrayVec<[Option<T>; N]>, Nothing<T>, Nothing<ArrayVec<[Option<T>; N]>>, ArrayVec<[Option<T>; N]>>;
curried append waiting for both arguments
append