macro_rules! action {
((let $name:ident $value:tt)) => { ... };
((set ($f:ident $($x:tt)*) $value:tt)) => { ... };
((delete ($f:ident $($x:tt)*))) => { ... };
((subsume ($f:ident $($x:tt)*))) => { ... };
((union $x:tt $y:tt)) => { ... };
((panic $message:literal)) => { ... };
($x:tt) => { ... };
}