ring.util.data/assoc-conj supports vectors as well as maps.

Interesting issue around assoc there; probably assoc should be working with anything clojure.lang.Associative, rather than explicitly maps and vectors. Might be something in Ambrose's thesis about this.