这里是使用 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 约束确实运行了两次。