implement clojure.lang.IReference