 ; should use: count, nth
 (defn- vector-seq [vector i]
   (lazy-seq
-    (when (< i (icount vector))
-      (cons (inth vector i) (vector-seq vector (inc i))))))
+    (when (< i (-count vector))
+      (cons (-nth vector i) (vector-seq vector (inc i))))))
 
 (deftype Vector [meta array]
   IWithMeta
-  (iwith-meta [coll meta] (Vector. meta array))
+  (-with-meta [coll meta] (Vector. meta array))
 
   IMeta
-  (imeta [coll] meta)
+  (-meta [coll] meta)
 
   IStack
-  (ipeek [coll]
+  (-peek [coll]
     (let [count (.length array)]
       (when (> count 0)
         (aget array (dec count)))))
-  (ipop [coll]
+  (-pop [coll]
     (if (> (.length array) 0)
       (let [new-array (array-clone array)]
         (. new-array (pop))

  'added'. (conj nil item) returns (item).  The 'addition' may
  happen at different 'places' depending on the concrete type."
  ([coll x]
     (if coll (iconj coll x) (cons x nil)))
  ([coll x & xs]
     (if xs
       (recur (iconj coll x) (first xs) (next xs))
       (iconj coll x))))

;;; Math - variadic forms will not work until the following implemented:
;;; first, next, reduce

      #_(throw "Can't pop empty vector")))

  ICollection
  (-conj [coll o]
    (let [new-array (array-clone array)]
      (.push new-array o)
      (Vector. meta new-array)))
