macro_rules! spawn_named {
    ($name:expr, $func:expr) => { ... };
    ($name:expr, $handler:expr, $func:expr) => { ... };
    ($name:expr, $async:ident = async; $clojure:block) => { ... };
    ($name:expr, $handler:expr, $async:ident = async; $clojure:block) => { ... };
    ($name:expr, $async:ident = async ; $move:ident = move; $clojure:block) => { ... };
    ($name:expr, $handler:expr, $async:ident = async ; $move:ident = move; $clojure:block) => { ... };
}