macro_rules! join { ($fut1:expr, $fut2:expr) => { ... }; ($fut1:expr, $fut2:expr, $fut3:expr) => { ... }; ($fut1:expr, $fut2:expr, $fut3:expr, $fut4:expr) => { ... }; }