;; An fn carries parameter names and no types — that is the surface syntax — ;; so it takes them from the position it is written in. An argument position ;; says what is wanted, because the callee's signature is threaded into every ;; argument; a let binding does not, and is refused saying so. (defn main [] i32 (let [f (fn [x] (* x 2))] (println (f 3))) 0)