                      {lang-name loc}))))
           (remove (fn [m] (->> m vals first nil?)))
           (apply merge)))))
+
+(defn- print-unicode-range
+  ([]
+   (print-unicode-range (read-string (str "0x" "0600"))
+                        (read-string (str "0x" "06FF"))))
+  ([start end]
+   (->> (range start end)
+        (map #(Character/toString (char %)))
+        (apply str)
+        println)))
 
 (defn- unicode-ranges
   "Return a map with values each with `:name` of a Unicode

       (apply concat)
       (apply merge)))

(defn unicode-to-locale []
  (swap! unicode-to-locale-inst #(or % (create-unicode-to-locale))))

(defn- unicode-to-locale-vals []

           (concat (map #(hash-map (:name %) %) non-lang-sets))
           (apply merge)))))

(defn- unicodes []
  (swap! unicodes-inst #(or % (create-unicodes))))

(defn- locale-to-unicode []
  (->> (unicodes)
       vals
       (map (fn [{:keys [loc] :as m}]
