macro_rules! atom { ($name:ident ($($sname:ident $val:expr),*)) => { ... }; (@$name:ident ($($sname:ident $val:expr),*)) => { ... }; (boolean $val:expr) => { ... }; (integer $val:expr) => { ... }; (uuid $val:expr) => { ... }; (string $val:expr) => { ... }; (term $val:expr) => { ... }; }