Change evaluation order to only reduce when needed