/** * Returns a curried equivalent of the provided function. * @see http://ramdajs.com/docs/#curry */ // // poor man's version, using a given return value rather than using `typeof` based on the given argument types: // function curry(fn: (...args: Args) => Ret): Curried; // type Curried< // ArgsAsked, // Ret, // ArgsPrevious = [] // if we can't have empty tuple I guess any[] might also destructures to nothing; that might do. // > = < // ArgsGiven extends any[] = ArgsGiven, // ArgsAll extends [...ArgsPrevious, ...ArgsGiven] // = [...ArgsPrevious, ...ArgsGiven] // >(...args: ArgsGiven) => // If< // TupleHasIndex>, // Ret, // Curried // >;