macro_rules! impl_gcd { ($slf:ty, [$($rhs:ty),+]) => { ... }; ($slf:ty, $rhs:ty, $out:ty) => { ... }; }