Do you think that we should allow it to do a full pass (`0.upto(columns.length - 2)`) through the columns, first using the old `evaluate_columns(merge_columns(i, i+1))`, then using your new code if the old technique doesn't find anything?