   (:import [java.util List Map Set]
            [org.apache.hadoop.conf Configuration Configurable]
            [org.apache.hadoop.mapreduce Job JobContext]))
+
+(def ^:dynamic ^:private *default*
+  "Base configuration, used as template for fresh configurations."
+  (Configuration.))
 
 (defmulti ^:private configuration*
   "Internal implementation multimethod for extracting a `Configuration`."

(def ^{:tag `Configuration} ig
  "Alias for `configuration`."
  configuration)

(defn get
  "Get string value of `conf` parameter `key`"

  "Merge key-value pairs `kvs` into Hadoop configuration `conf`."
  [conf & kvs] (merge! conf (partition 2 kvs)))

(defmethod configuration* Configuration [conf] conf)
(defmethod configuration* Configurable
  [cable] (.getConf ^Configurable cable))
