macro_rules! arr_impl {
(@replace_expr $e:expr) => { ... };
($T:ty; $N:ty, [$($x:expr),*], []) => { ... };
($T:ty; $N:ty, [], [$x1:expr]) => { ... };
($T:ty; $N:ty, [], [$x1:expr, $($x:expr),+]) => { ... };
($T:ty; $N:ty, [$($y:expr),+], [$x1:expr]) => { ... };
($T:ty; $N:ty, [$($y:expr),+], [$x1:expr, $($x:expr),+]) => { ... };
}
Proper implementation of arr!