An lvar unified with a keyword behaves differently from a keyword

Description

(run 1 [q]
(fresh [x]
(== x :a)
(== q ({:a 0} x))))
=> (nil)
(run 1 [q]
(fresh [x]
(== x :a)
(== q ({:a 0} :a))))
=> (0)
(run 1 [q]
(fresh [x]
(== x :a)
(== {:a 0} {x q})))
=> ()
(run 1 [q]
(fresh [x]
(== x :a)
(== {:a 0} {:a q})))
=> (0)

Environment

None

Assignee

David Nolen

Reporter

import

Labels

None

Approval

None

Patch

None

Priority

Major
Configure