Change Subst to store a single mapping for vars
authorCassie Jones <code@witchoflight.com>
Mon, 17 Feb 2020 11:41:24 +0000 (12:41 +0100)
committerCassie Jones <code@witchoflight.com>
Mon, 17 Feb 2020 11:41:24 +0000 (12:41 +0100)
commit42771ef90d9a0e0e7075e45ae7cb4c9299c9709b
tree31491f245b2716f314cf2b9eb684414cf248db63
parentf3e226d8e89278a25303ce0c9e3693f30b0e53d6
Change Subst to store a single mapping for vars

The previous implementation stored a Vector of values mapped, and adding
new mappings shadowed previous ones. I did it like this because the
implementation in the paper used association lists, which has this
shadowing effect. But, the implementation in Clojure simply uses a
dictionary like I'm using, and after doing these examples without seeing
shadowing, I'm convinced that it has the same behavior.

During this change, I also ended up changing a bunch of places with
cloning to pass references instead, which should cut down on reference
counting bookkeeping time.
src/lib.rs