macro_rules! permit {
(@mask $role_ty:ty, $role:ident) => { ... };
($role_ty:ty, $role:ident $(,)?) => { ... };
($role_ty:ty, $first:ident $( & $rest:ident )+ $(,)?) => { ... };
($role_ty:ty, $first:ident $( | $rest:ident )+ $(,)?) => { ... };
}