make reduce() tolerate unstable first/rest