The Wolf, the Goat, and the Cabbage

I was always fascinated by relational programming, but I never had any real-world opportunities to use it myself, so I tried to use it to solve some simple puzzles. Below is my attempt to solve the "Wolf, Goat, and Cabbage" puzzle using miniKanren.

And if you don't want to read through an entire blog post, the program (with full unit tests) is available here: