macro_rules! judgment_fn {
(
$(#[$attr:meta])*
$v:vis fn $name:ident($($input_name:ident : $input_ty:ty),* $(,)?) => $output:ty {
debug($($debug_input_name:ident),*)
$(assert($assert_expr:expr))*
$(trivial($trivial_expr:expr => $trivial_result:expr))*
$(($($rule:tt)*))*
}
) => { ... };
}