macro_rules! define_function {
(
$registry:expr
=>
$(mod $module_name:ident)?
$(type ($type:ty))?
fn
$name:ident
($( $input_name:ident : $input_type:ty),*)
->
($( $output_name:ident : $output_type:ty),*)
$code:block
) => { ... };
}