     (assoc v 0 val))
   (set-last [v val]
     (assoc v (-> v count dec) val))
-  #?(:clj Object :cljs object)
+  #?(:clj Object :cljs default)
   (set-first [l val]
     (set-first-list l val))
   (set-last [l val]

      (coerce-path (vec this)))
    ])
  
  #?(:clj Object :cljs object)
  (coerce-path [this]
    (cond (structure-path? this) (coerce-structure-path this)
          (obj-extends? `p/Collector this) (coerce-collector this)
          (obj-extends? `p/StructureValsPath this) (coerce-structure-vals-path this)
          :else (throw-illegal (no-prot-error-str this))
      )))


  nil
  (comp-paths* [sp]
    (coerce-path sp))
  #?(:clj Object :cljs default)
  (comp-paths* [sp]
    (coerce-path sp))
  #?(:clj java.util.List :cljs cljs.core/PersistentVector)
