Matrix / Vector API for Clojure supporting multiple implementations