macro_rules! Either {
    ($a:ty) => { ... };
    ($a:ty, $b:ty) => { ... };
    ($a:ty, $b:ty, $c:ty) => { ... };
    ($a:ty, $b:ty, $c:ty, $d:ty) => { ... };
    ($a:ty, $b:ty, $c:ty, $d:ty, $e:ty) => { ... };
    ($a:ty, $b:ty, $c:ty, $d:ty, $e:ty, $f:ty) => { ... };
    ($a:ty, $b:ty, $c:ty, $d:ty, $e:ty, $f:ty, $g:ty) => { ... };
}