;;;; A Vec cannot cross to C. The shim flattens a struct that crosses, and a ;;;; Vec is not a struct anyone should flatten: it owns storage, and handing ;;;; its header to C hands out an owner. It falls to the same aggregate ;;;; refusal every other non-scalar declare-c parameter gets, which is the ;;;; point — nothing special was needed and nothing special was added. (declare-c vec-sum [v (Vec i32)] i32 "vec_sum") (defn main [] i32 0)