Very interesting stuff. I wasn't expecting so much detail here. I'll definitely read over it more later.
I'd love to see a canonical Clojure version since it would be very anti-OO, as opposed to this CLOS heavy version. I wonder if it would be natural to use multi-methods in the Clojure version too.