time-apply
time-apply : ((any ... -> any) any ... -> any)
purpose: applies the first argument to the rest of the arguments and time the function call