(defn divergence [f]
  (Special. 'if
    (fn [env exp]
      (if (->> exp first (f env))
	(f env (nth exp 1))
	(f env (nth exp 2))))))