If anyone knows about it, I'm curious about any of the history and evolution of Kanren/miniKanren (the original Scheme versions) not found in standard reference papers, and wonder if any of the authors frequent HN.<p>There seem to be three distinct implementations in the Kanren family at:<p><a href="http://kanren.sourceforge.net/" rel="nofollow">http://kanren.sourceforge.net/</a><p>1) Kanren (v4.50) - the full-blown logic system by Dan Friedman and Oleg.<p>2) "minikanren.scm" (v4.50) - this isn't the miniKanren that's used in The Reasoned Schemer (RS) - it appears to be a trimmed-down version of Kanren that may have been used in Univ. of Indiana classes, e.g:<p><a href="http://www.cs.indiana.edu/l/www/classes/c311/minilop.pdf" rel="nofollow">http://www.cs.indiana.edu/l/www/classes/c311/minilop.pdf</a><p>It's an interesting version in its own right, and I've used it for some Datalog-like experiments. I wonder if this was an early attempt to adapt Kanren for teaching, or if anything else drove its implementation.<p>3) "mk.scm" (v1.3) - the RS' miniKanren by Friedman, Oleg Kiselyov, William Byrd, and Chung-chieh Shan...also described in Byrd's dissertation:<p><a href="https://scholarworks.iu.edu/dspace/bitstream/handle/2022/8777/Byrd_indiana_0093A_10344.pdf?sequence=1" rel="nofollow">https://scholarworks.iu.edu/dspace/bitstream/handle/2022/877...</a><p>There are other versions as well - a microKanren, a couple of implementations by the U. of Indiana folks for things like nominal logic programming (alphaKanren) and constraint logic programming (cKanren), and of course the Clojure version discussed in the link.<p>These are all fascinating projects, and the full-blown Kanren implementation (in Scheme) is quite fast for things I've used it for. Much of the work you see recently on the web discusses the core.logic (miniKanren/Clojure) implementation. I'd be interested in hearing from others who've used any of these systems.