   (str "[TRACE] Entering \"" fct-name "\" with arguments: "))
 
 (defn compile-log-message
-  [form binding-vec]
-  (let [fct-name (-> form second str)
-        bindings (bindings->bound-vars binding-vec)]
+  [fct-name binding-vec]
+  (let [bindings (bindings->bound-vars binding-vec)]
     `(log-enter-message
        ~(log-prefix fct-name)
        (quote ~bindings)

  [name bindings body]
  `(defn ~name
     ~bindings
     (println ~(compile-log-message &form bindings))
     ~body))

(defn-log add-with-log

  `(defn ~name
     ~bindings
     (if-let [log-fct# @logger]
       (log-fct# ~(compile-log-message name bindings)))
     ~body))

(defn-log-2 add-with-log-2
