1 macro_rules! succ (
2   (0, $submac:ident ! ($($rest:tt)*)) => ($submac!(1, $($rest)*));
3   (1, $submac:ident ! ($($rest:tt)*)) => ($submac!(2, $($rest)*));
4   (2, $submac:ident ! ($($rest:tt)*)) => ($submac!(3, $($rest)*));
5   (3, $submac:ident ! ($($rest:tt)*)) => ($submac!(4, $($rest)*));
6   (4, $submac:ident ! ($($rest:tt)*)) => ($submac!(5, $($rest)*));
7   (5, $submac:ident ! ($($rest:tt)*)) => ($submac!(6, $($rest)*));
8   (6, $submac:ident ! ($($rest:tt)*)) => ($submac!(7, $($rest)*));
9   (7, $submac:ident ! ($($rest:tt)*)) => ($submac!(8, $($rest)*));
10   (8, $submac:ident ! ($($rest:tt)*)) => ($submac!(9, $($rest)*));
11   (9, $submac:ident ! ($($rest:tt)*)) => ($submac!(10, $($rest)*));
12   (10, $submac:ident ! ($($rest:tt)*)) => ($submac!(11, $($rest)*));
13   (11, $submac:ident ! ($($rest:tt)*)) => ($submac!(12, $($rest)*));
14   (12, $submac:ident ! ($($rest:tt)*)) => ($submac!(13, $($rest)*));
15   (13, $submac:ident ! ($($rest:tt)*)) => ($submac!(14, $($rest)*));
16   (14, $submac:ident ! ($($rest:tt)*)) => ($submac!(15, $($rest)*));
17   (15, $submac:ident ! ($($rest:tt)*)) => ($submac!(16, $($rest)*));
18   (16, $submac:ident ! ($($rest:tt)*)) => ($submac!(17, $($rest)*));
19   (17, $submac:ident ! ($($rest:tt)*)) => ($submac!(18, $($rest)*));
20   (18, $submac:ident ! ($($rest:tt)*)) => ($submac!(19, $($rest)*));
21   (19, $submac:ident ! ($($rest:tt)*)) => ($submac!(20, $($rest)*));
22   (20, $submac:ident ! ($($rest:tt)*)) => ($submac!(21, $($rest)*));
23 );
24