In chapter 1, part 54 I don't understand why the return value is ((split pea) (navy bean)). CONDE returns that but the return value is r unified with (list x y) and it appears the book is trying to say ... uh... that x and y are *both* values now?
Huh?
;; Beware, I speak scheme with a Common Lisp accent (run* (r) (fresh (x y) (conde ;; -> ((split pea) (navy bean)) ((== 'split x) (== 'pea y)) ;; -> (split pea) ((== 'navy x) (== 'bean y)) ;; -> (navy bean) (else #u))
;; I discarded those bindings, right? (== (list x y) r)))