macro_rules! slice {
() => { ... };
($start:expr) => { ... };
($start:expr, $end:expr) => { ... };
($start:expr,, $step:expr) => { ... };
(,, $step:expr) => { ... };
(, $end:expr) => { ... };
(, $end:expr,$step:expr ) => { ... };
($start:expr, $end:expr, $step:expr) => { ... };
}