   (as-url [u] (.toURL u))
   (as-file [u] (as-file (as-url u))))
 
-(defprotocol ^{:added "1.2"} IOFactory
+#_(defprotocol ^{:added "1.2"} IOFactory
   "Factory functions that create ready-to-use, buffered versions of
    the various Java I/O stream types, on top of anything that can
    be unequivocally converted to the requested kind of stream.

          (do (.write output buffer 0 size)
            (recur)))))))

(defmethod do-copy [InputStream Writer] [^InputStream input ^Writer output opts]
  (let [^"[C" buffer (make-array Character/TYPE (buffer-size opts))
        in (InputStreamReader. input (encoding opts))]
    (loop []

                            (make-output-stream (as-file x) opts)
                            (throw (IllegalArgumentException. (str "Can not write to non-file URL <" x ">")))))))

#_(extend URI
  IOFactory
  (assoc default-streams-impl
    :make-input-stream (fn [^URI x opts] (make-input-stream (.toURL x) opts))
    :make-output-stream (fn [^URI x opts] (make-output-stream (.toURL x) opts))))

#_(extend String
  IOFactory
  (assoc default-streams-impl
    :make-input-stream (fn [^String x opts]
