macro_rules! runtime_error {
    ($err_type : expr) => { ... };
    ($err_type : expr, $msg : literal) => { ... };
    ($err_type : expr, $msg_fmt : literal, $($msg_fmt_args : expr), +) => { ... };
}