   ([x y] (Path. (-path x) (str y)))
   ([x y & more] (apply path (path x y) more)))
 
-(defmethod print-method Path
-  ([^Path x ^java.io.Writer w]
-     (.write w "#hadoop.fs/path \"")
-     (.write w (str x))
-     (.write w "\"")))
+(defmethod print-method Path [x w] (write-all w "#hadoop.fs/path \"" x "\""))
+(defmethod print-dup Path [x w] (write-all w "#hadoop.fs/path \"" x "\""))
 
 (defn path?
   "True iff `x` is a Path."

            [parkour (conf :as conf) (reducers :as pr)]
            [parkour.util :refer [ignore-errors returning map-vals mpartial]])
  (:import [java.net URI URL]
           [java.io File IOException InputStream]
           [org.apache.hadoop.fs FileStatus FileSystem Path]
           [org.apache.hadoop.filecache DistributedCache]))


       (-> x (.resolve (str (.getPath x) "/")) (.resolve (str y)))))
  ([x y & more] (apply uri (uri x y) more)))

(defmethod print-method URI [x w] (write-all w "#java.net/uri \"" x "\""))
(defmethod print-dup URI [x w] (write-all w "#java.net/uri \"" x "\""))

(defn uri?
  "True iff `x` is a URI."
