A manipulable, pluggable, memoization framework for Clojure