removed doubled macros, set-aref evaluation order left to right