Details
-
Type:
Defect
-
Status:
Open
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: None
-
Fix Version/s: None
-
Component/s: None
-
Labels:None
Description
Here are two examples using fixc:
(run* [q]
(fresh [x y]
(fixc [x y]
(fn [[x y] a _] (!= x 1))
(fn [[x y] a] (= (walk a x) (walk a y)))
'...)
(== x y)))
(run* [q]
(fresh [x y c d]
(fixc [x y]
(fn [[x y] a _] (!= x y))
(fn [[x y] a] (or (not (lvar? (walk a x))) (not (lvar? (walk a y)))))
'...)
(== [x y] [[c] [d]])))
The constraint != is reified twice in each example, showing that the fixc constraint indeed ran twice.
For the first example I see the following as a result on master:
Is this what you're seeing? As x isn't even part of the answer I wonder if we should show these constraints?