import { HKT , URIS } from './hkt' ; export interface ReduceableKind < F extends URIS , A extends any [ ] > extends HKT < F , A > { reduce < T2 > ( reducer , initialValue ) : T2 ; } export const reduce = < Reduceable extends ReduceableKind < any , any > , T2 = any > ( reducer , initialValue ) => ( reduceable ) : T2 => { return reduceable . reduce ( reducer , initialValue ) ; } ;