 ;; Thanks, Joseph (@selfsame), for the repl environment tip!
 (def repl-env (atom (arcadia.repl/env-map)))
 
-(defn repl-eval-print-string [s]
+(defn repl-eval-print-string
+  "This repl is used by the eval-expression command.
+
+  (def result-string (repl-eval-print-string \"(+ 1 2)\"))"
+  [s]
   (let [{:keys [result env]} (arcadia.repl/repl-eval-print repl-env s)]
        (reset! repl-env env)
        result))

                 (str "Typeargs and args must be equal length or typeargs may have "
                      "one more element at the end to represent its return type.")))))

(defmacro separate-types [f args]
          `{:typeargs (->> '~args
                           (mapv meta)
                           (mapv :tag))
          :typeresult (:tag (meta '~f))})

;; (defmacro separate-types-oldform [f args]
;;           `(let [{:keys [typeargs# typeresult#]} (separate-types ~f ~args)]
;;                 (if typeresult#
;;                     (conj typeargs# typeresult#)
;;                   typeargs#)))

(defmacro separate-types-oldform [f args]
          `(let [h# (separate-types ~f ~args)]
                (if (:typeresult h#)
                    (conj (:typeargs h#) (:typeresult h#))

   [UnityEngine Time Mathf Debug]
   [seawisphunter.minibuffer Minibuffer Command]))

;(log "minibuffer.lisp.core reloaded")

;; gen-delegate, generate-generic-delegate, sys-func, and sys-action taken from
;; core-clr.clj and reworked from macros to be functions.

