          (-nth coll n)
          
          :else
-         (linear-traversal-nth coll (.floor js/Math n)))))
+         (if (satisfies? ISeq coll)
+           (linear-traversal-nth coll (.floor js/Math n))
+           (throw
+             (js/Error.
+               (str "nth not supported on this type "
+                 (type->str (type coll)))))))))
   ([coll n not-found]
      (if-not (nil? coll)
        (cond

   (js/Error.
     (.join (array "No protocol method " proto
                   " defined for type " ty ": " obj) ""))))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; arrays ;;;;;;;;;;;;;;;;


         (-nth coll n)

         :else
         (if (satisfies? ISeq coll)
           (linear-traversal-nth coll (.floor js/Math n) not-found)
           (throw
             (js/Error.
               (str "nth not supported on this type "
                 (type->str (type coll)))))))
       not-found)))

(defn get
