Evaluate most expensive args first to minimize temp lifetimes.