simplified files
issues with propagation - mixing side-effects and returns
added a few tests
commented propagator logic; added some convenience functions
walk returns a cell, not a cell-value
removed old propagatore; updated mk to allow for new syntax
redefining state structure of hash tables. Adding in unit tests for functions. Hash tables are gross. I want to go a different direction. Lists for right now. Binary trees for real implementation.
blew away work with annoying state to use only lists
propagator, update/f, ==, starting unify. TODO: switch to pmatch (all), check name consistency
added an auto-bumping state - allocation of vars happens in ext-s, which only gets called with fresh variables. Will make later code cleaner, I think.
cleaned up ext-s function
changed mK, placing base microKanren in there to start from the bottom.
reclaim numbers for uk by placing things in boxes.
added take-all and run*, removed some extra stuff I didn't want. Impure stuff.
self-bumping environment (counter is implicit in the state); add self-references to vars when first initialized. In order to do this I had to also change walk to recognize self-cycles. Occur's Check doesn't care if variables are equivalent now in the case of a non-pair. changed reify-var0 to use a state without a counter.
added a couple tests to the miniKanren test suite
added member*? to check if multiple things are in a list.
minor commit; cleaned up some code
added some miniKanren programs to test
minor commit, added constraint store and domain knowledge to variables. Closes #1