I learnt how to synthesize a LISP quine using MiniKanren. It's quite magical, I don't understand it yet.

((lambda (x)   `(,x (quote ,x))) (quote   (lambda (x)     `(,x (quote ,x)))))