    #?(:cljs [babel.logjs :as log])
    [dag_unify.core :refer (copy dissoc-paths fail? get-in merge ref? strip-refs unifyc)]))
 
+(defn exception [error-string]
+  #?(:clj
+     (throw (Exception. error-string)))
+  #?(:cljs
+     (throw (js/Error. error-string))))
+
 (declare number-and-person)
 
 (def suppress-incomplete-morphology-errors true)

       (if (= true suppress-incomplete-morphology-errors)
         (do (log/warn message)
             "(" (get-in word [:francais]) ")")
         (throw (Exception. message)))))))

(defn future [word]
  (let [infinitive (reflexive-to-infinitive (get-in word '(:français)))
        ar-type (try (re-find #"ar$" infinitive)
                     (catch Exception e
                       (throw (Exception. (str "Can't regex-find on non-string: " infinitive " from word: " word)))))
        er-type (re-find #"[eé]r$" infinitive)
        ir-type (re-find #"ir$" infinitive)
        re-type (re-find #"re$" infinitive)

  (let [infinitive (reflexive-to-infinitive (get-in word [:français]))
        ar-type (try (re-find #"ar$" infinitive)
                     (catch Exception e
                       (exception (str "Can't regex-find on non-string: " infinitive " from word: " word))))
        er-type (re-find #"[eé]r$" infinitive)
        ir-type (re-find #"ir$" infinitive)
        re-type (re-find #"re$" infinitive)
