export interface IIteratorReduceReducerFunction { (previousValue: GReduced, currentValue: GOut, index: number): GReduced; } export interface IIteratorReduceFunction { (reducer: IIteratorReduceReducerFunction): GOut; (reducer: IIteratorReduceReducerFunction, initialValue: GReduced): GReduced; }