 (defn vector-methods [index]
   {:can-get? #(< index (count %))
    :get #(nth % index)
-   :set (fn [obj x] (assoc obj index x))})
+   :set (fn [obj x] (assoc obj index x))
+   :can-remove? (constantly false)
+   :remove identity})
 
 (defn vector-accessor 
   ([index extra-opts] 


(def decorators [[:validate-base make-validate-base]
                 [:validate-has make-validate-has]
                 [:validate-value make-validate-value]
                 [:get-optional-unchecked make-get-optional-unchecked]
                 [:get-optional make-get-optional]

      (b (s (b obj) (v x))))))

(defn make-checked-remove [accessor]
  (let [b (:validate-base accessor)
        r (:remove accessor)
        r? (:can-remove? accessor)]
