macro_rules! update {
($type:ty, $($field:ident : $value:expr),+ $(,)?) => { ... };
($type:ty, $name:ident, $($field:ident : $value:expr),+ $(,)?) => { ... };
($type:ty, |$param:ident| $body:expr) => { ... };
($type:ty, $name:ident, |$param:ident| $body:expr) => { ... };
}