core.logic

from the Clojure Cookbook