macro_rules! immutable_cell {
(or: $field:tt, $inner:ty, $error:ident::$($error_variant:tt)::*) => { ... };
(only or: $field:tt, $inner:ty, $error:ty) => { ... };
(or_init: $field:tt, $inner:ty, $error:ident) => { ... };
(set: $field:tt, $inner:ty, $error:ident::$($error_variant:tt)::*) => { ... };
}