macro_rules! call_function {
    (fn($($argument_type:ty),* $(,)?) -> $result_type:ty, $function:expr) => { ... };
    (fn($($argument_type:ty),* $(,)?) -> $result_type:ty, $function:expr, $($argument:expr),* $(,)?) => { ... };
}