Here are some benchmarks comparing the performance of Array(...) and Debox's array(...) macro for varargs lists of various lengths. benchmark ns linear runtime Apply0 14.1 = Macro0 13.7 = Apply1 31.4 == Macro1 14.7 = Apply2 27.6 = Macro2 14.8 = Apply4 35.7 == Macro4 15.5 = Apply8 46.0 === Macro8 15.9 = Apply16 66.5 ==== Macro16 18.1 = Apply32 111.3 ======= Macro32 26.7 = Apply64 222.9 ============== Macro64 48.5 === Apply128 450.0 ============================== Macro128 92.6 ====== As you can see, for very small arrays the macro version in Debox is about twice as fast (excepting the 0 case). As the number of arguments increases, this advantage grows: ~3x at 8 items, ~4x at 32 items, and ~5x at 128 items. (Of course, given that these times are in nanoseconds, you have to do this sort of thing a lot before it adds up to an appreciable amount of user time.) Debox is at: https://github.com/non/debox