export type Reducer = (accumulator: TOutput, currentValue: TInput, index: number, array: Array) => TOutput;