There may be some gains to implementing +(as...) and other similar cases for arrays. This should be faster and also allocate fewer temporaries.