                      (str (c/cyan " ▸  ") opt-checked-label)
                      (str "    " opt-checked-label)))) opts))
 
+(defn- restore-terminal!
+  "Restore Terminal configuration"
+  [term]
+  (.restoreTerminal term)
+  (print (esc/cursor-show)))
+
 (defn- prompt-select-list
   "Prompt a list of elements with 1 selected answer" ;TODO write right desc...
   [question choices selected submitted? first-rendering?]

  (let [term (Terminal/getTerminal)]
    (print (esc/cursor-hide))
    (if (= true submitted?)
      (let [opt-selected (nth choices selected nil)
            opt-selected-label (get opt-selected :label)
            opt-selected-val (get opt-selected :value)]
        (.restoreTerminal term)
        (print (esc/cursor-show))
        (println (str "[" (c/green "▸") "] " question ": " (c/cyan opt-selected-label)))
        opt-selected-val)

      (let [num-opts (count choices)
            tip (if (= true first-rendering?) (c/dim " (UP/DOWN move, SPACE check/uncheck, ENTER submit)") "")]

      (let [opt-selected (nth choices selected nil)
            opt-selected-label (get opt-selected :label)
            opt-selected-val (get opt-selected :value)]
        (restore-terminal! term)
        (println (str "[" (c/green "▸") "] " question ": " (c/cyan opt-selected-label)))
        opt-selected-val)

