macro_rules! doc {
(T, Option, Vec, $($t:tt)*) => { ... };
(Option, Vec, $($t:tt)*) => { ... };
(T, Option, $($t:tt)*) => { ... };
(T, Vec, $($t:tt)*) => { ... };
(T, $($t:tt)*) => { ... };
(Option, $($t:tt)*) => { ... };
(Vec, $($t:tt)*) => { ... };
(@inner T, $i:ident :: $($t:tt)*) => { ... };
(@inner Option, $i:ident :: $($t:tt)*) => { ... };
(@inner Vec, $i:ident :: $($t:tt)*) => { ... };
(@inner T, $i:ident $($t:tt)*) => { ... };
(@inner Option, $i:ident $($t:tt)*) => { ... };
(@inner Vec, $i:ident $($t:tt)*) => { ... };
($t:ty, $e:expr) => { ... };
($($t:tt)*) => { ... };
}