StackOverflowError when logic variable is unified with a set
It is pretty common to unify a variable with a vector or list of a fixed length like (== q (list a b)) and then define more goals on a and b with the intention of being able to define the run* query's result format. However, if one does the same using a set one gets a StackOverflowError.
Basically, what I wanted to express here is that the order of a and b is not significant so that (distinct (run* ...)) gives me the unique results.
The backtrace is:
core.logic 0.8.10, Clojure 1.7.0