mini_kanren
macro_rules! conj { () => { ... }; ($g:expr) => { ... }; ($g0:expr, $($g:expr),*) => { ... }; }