This is an example of a function whose logic lives in the type definition rather than in the function body.
/**
* @name `curryRecord`
*
* Takes a unary function that takes a record as an argument, and makes the
* record partially applicable. Returns a new function that takes a partial of