 (ns R
   (:refer-clojure :exclude [find-ns])
-  (:require [clojure.test :as test]
-            [clojure.repl :as repl]
-            [kaocha.repl]
-            clojure.pprint
-            [clojure.tools.namespace.find :as ns.find]
-            [clojure.tools.namespace.repl :as ns.repl]
-            [clojure.java.io :as io])
-  (:import (java.io File)))
+  (:require
+    [clojure.java.io :as io]
+    [clojure.pprint]
+    [clojure.repl :as repl]
+    [clojure.test :as test]
+    [clojure.tools.namespace.find :as ns.find]
+    [clojure.tools.namespace.repl :as ns.repl]
+    [kaocha.repl])
+  (:import
+    (java.io
+      File)))
+
 
 (ns.repl/disable-reload! *ns*)
+(def ^{:doc "Pretty print a thing"} pp clojure.pprint/pprint)
+
 
 (defn help [& n]
   (println (str ">>> in ns " 'R))

  (let [sys (sys)]
    (get sys component-name)))

(defn safe-to-refresh? []
(or (empty? @system-status)
    (= #{false} (-> @system-status vals set))))

(defn  refresh
  "Refresh changed namespaces"
  []
  (if (safe-to-refresh?)
    (ns.repl/refresh)
    ::system-running!))

(defn refresh-all
  "Refresh everything"
  []
  (if (safe-to-refresh?)
    (ns.repl/refresh-all)
    ::system-running!))

(def ^{:doc "Pretty pretint a thing"} pp clojure.pprint/pprint)


(init!)

          (println v)) (ns-publics 'R))
  ::ok)


(defn init! []
  (ns.repl/disable-reload! *ns*)
  (ns.repl/set-refresh-dirs "src" "test")
  (help))


(defn list-ns
  "Return list of symbols of namespaces found in src dir"
