macro_rules! define_choice_protocol {
    ( $name:ident ;
    $( $protocols:ty ),+ $(,)?
  ) => { ... };
    ( $name:ident
    < $( $types:ident ),+ $(,)? > ;
    $( $protocols:ty ),+ $(,)?
  ) => { ... };
}