macro_rules! element {
($tag:expr) => { ... };
($tag:expr, {$($key:expr => $val:expr,)+}) => { ... };
($tag:expr, {$($key:expr => $val:expr),+}) => { ... };
($tag:expr, {$($key:expr => $val:expr,)+}, [$($child:expr,)+]) => { ... };
($tag:expr, {$($key:expr => $val:expr),+}, [$($child:expr,)+]) => { ... };
($tag:expr, {$($key:expr => $val:expr),+}, [$($child:expr),+]) => { ... };
($tag:expr, {$($key:expr => $val:expr),+}, $children:expr) => { ... };
($tag:expr, {$($key:expr => $val:expr,)+}, $children:expr) => { ... };
($tag:expr, $attrs:expr, $children:expr) => { ... };
}