This proposal introduces macros for broadcasting functions over arrays with automatic type specialization. These macros efficiently bind a set of parameters, which may be either scalars or 1D arrays. While extending this to N-dimensional arrays is possible, my focus is on 1D arrays.
(broadcast-fn [x y z] (+ x y z))
(broadcast-fn! [x y z] (set! z (+ x y)))