use Slang::Kanren; kanren-fact parent('marcia','jeff'); kanren-fact parent('mike','jeff'); kanren-fact parent('gerald','mike'); # Find out if Jeff shares a common parent with Gerald kanren-goal { parent('gerald',X), parent(X,'jeff') }