import { BasicArithmetic } from '../arithmetic' import { toArray } from '../IterableIterator/fun' import { getSummator } from './getSummator' export const sum = (arith: BasicArithmetic) => (nums: N[]) => nums.reduce(getSummator(arith), arith.zero) export const sumMap = (arith: BasicArithmetic) => (nums: Map) => sum(arith)(toArray(nums.values())) export const sumAmounts = (arith: BasicArithmetic) => (objects: { amount: N }[]) => sum(arith)(objects.map(b => b.amount))