user=> (use 'clojure.core.logic.unifier) user=> (prep '([?x])) ([]) ;; ok. ?x turned into an lvar user=> (prep '([?x] . ?xs)) ([?x] . ) ;; fail. ?x is not an lvar