## compose ```ts const compose = ( ...funcs: ((...args: any[]) => void)[] ): ((...args: any[]) => void) => { if (funcs.length === 0) return args => args if (funcs.length === 1) return funcs[0] return funcs.reduce((a, b) => (...args: any[]) => a(b(...args))) } ```