以下是用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]])))
`
在每一个例子中,约束 != 被具象化两次,这表明 fixc 约束确实运行了两次。