mini_kanren
macro_rules! disj { () => { ... }; ($g:expr) => { ... }; ($g0:expr; $($g:expr);*) => { ... }; }
Creates a goal that succeeds if any of its subgoals succeeds