Functional interfaces require function literals at the call site, not variables, right?
Either
i.e. (.foo x (fn [y] …)), not (let [z (fn [y] ...)] (.foo x z)
Either of these is fine, but you can lift the coercion to the let by type hinting z (the binding, not the expression) with the FI type