macro_rules! unroll {
    (0, |$i:ident| $s:stmt) => { ... };
    (1, |$i:ident| $s:stmt) => { ... };
    (2, |$i:ident| $s:stmt) => { ... };
    (3, |$i:ident| $s:stmt) => { ... };
    (4, |$i:ident| $s:stmt) => { ... };
    (5, |$i:ident| $s:stmt) => { ... };
    (6, |$i:ident| $s:stmt) => { ... };
    (7, |$i:ident| $s:stmt) => { ... };
    (8, |$i:ident| $s:stmt) => { ... };
    (9, |$i:ident| $s:stmt) => { ... };
    (10, |$i:ident| $s:stmt) => { ... };
    (11, |$i:ident| $s:stmt) => { ... };
    (12, |$i:ident| $s:stmt) => { ... };
    (13, |$i:ident| $s:stmt) => { ... };
    (14, |$i:ident| $s:stmt) => { ... };
    (15, |$i:ident| $s:stmt) => { ... };
    (16, |$i:ident| $s:stmt) => { ... };
}