I messed around a bit more with the microKanren thing I started working on yesterday. I wasn't really sure how it should handle unification, so I abstracted out the unification logic and made it pluggable. Right now there's just json-inspired unification, but it wouldn't be hard to add other models.
I tried out a very basic usage of that unifier, and it's a little hard to tell how much it, like, works. The thing that I can tell is that I don't like the variable introduction function, which is a very close port of the Scheme version. Requiring a function definition or a lambda for every new variable seems painful to me. Maybe it won't be as bad if I come up with a use case that justifies having this. I'm trying to remember, I feel like I was doing something recently-ish that seemed like it would have handled better with unification and backtracking, but I can't remember the details.
Anyway, I'm feeling really lousy, so I'm not going to worry about it any more, and try and get some rest.