macro_rules! HList { ( $(,)? ) => { ... }; ( $e:ty ) => { ... }; ( $e:ty, $($tail:tt)* ) => { ... }; }