 
 
 (defmethod canonize clojure.lang.IRecord
-  [r]
-  (if *strict-mode*
-    (throw (IllegalArgumentException.
-             (str "No canonical representation for " (class r) ": " r)))
-    [:span
-     (color-doc :delimiter "#")
-     (.getName (class r))
-     (canonize-map r)]))
+  [record]
+  (illegal-when-strict record)
+  [:span
+   (color-doc :delimiter "#")
+   (.getName (class record))
+   (canonize-map record)])
 
 
 (prefer-method canonize clojure.lang.IRecord clojure.lang.IPersistentMap)


(defmethod canonize :default
  [value]
  (if *strict-mode*
    (throw (IllegalArgumentException.
             (str "No canonical representation for " (class value) ": " value)))
    [:span
     (color-doc :class-delimiter "#<")
     (color-doc :class-name (.getName (class value)))
     " " (str value)
     (color-doc :class-delimiter ">")]))




   :function-symbol [:bold :blue]
   :class-delimiter [:blue]
   :class-name      [:bold :blue]})


(defn- illegal-when-strict
  "Checks whether strict mode is enabled and throws an exception if so."
  [value]
  (when (:strict *options*)
    (throw (IllegalArgumentException.
             (str "No canonical representation for " (class value) ": " value)))))


(defmacro with-color
