(extend-vector-like cls {:keys [read write], :as opts})
sets the fields of an object with keyword
(extend-vector-like test.Cat {:read (fn x) :write (fn arr)})
(test.Cat. “spike”) ;=> #test.Cat(\s \p \i \k \e)