−주문 통계를 레코드 하나로 묶는다. OrderStats는 주문 수, 합계, 최댓값을 함께 들고, Combine은 개수와 합계를 더하고 최댓값은 큰 쪽을 고른다. 주문이 없으면 최댓값을 정할 수 없으므로 decimal?의 null을 "없음"으로 두고, 튜플 패턴 매칭 (a.Max, b.Max) switch로 한쪽이 null인 경우를 처리한다. 세 필드가 각각 모노이드이므로 레코드 전체도 모노이드가 된다. 같은 부분 결과를 세 가지 방식으로 묶고, PLINQ의 Aggregate로도 합친다. 이 오버로드는 데이터를 파티션으로 나눠 파티션마다 누적한 뒤, 파티션 결과를 combineAccumulatorsFunc로 합친다.[각주 5]
+주문 통계를 레코드 하나로 묶는다. OrderStats는 주문 수, 합계, 최댓값을 함께 들고, Combine은 개수와 합계를 더하고 최댓값은 큰 쪽을 고른다. 주문이 없으면 decimal?의 null을 "없음"으로 두고, 튜플 패턴 매칭 (a.Max, b.Max) switch로 한쪽이 null인 경우를 처리한다. 각 필드의 합치기가 모노이드 법칙을 지키면 레코드 전체도 같은 법칙을 따르므로, 여기서는 작은 금액으로 이 조합을 살펴본다. 같은 부분 결과를 세 가지 방식으로 묶고, PLINQ의 Aggregate로도 합친다. 이 오버로드는 데이터를 파티션으로 나눠 파티션마다 누적한 뒤, 파티션 결과를 combineAccumulatorsFunc로 합친다.[각주 5]