;; A CFn is the bare address, so a literal written into one has nowhere to ;; keep the copies. Refused with the name of what it captured, because that is ;; the fact to act on, and with the fix named: widen the position to Fn, which ;; is what the type is for. (defn apply-bare [f (CFn [i32] i32) x i32] i32 (f x)) (defn main [] i32 (let [bonus 10] (println (apply-bare (fn [x] (+ x bonus)) 5))) 0)