Em F #, como você curry funções ParamArray (como sprintf)?

Em F #, como você curry uma função que aceita um número variável de parâmetros?

Eu tenho código como este ... (a função de log é apenas um exemplo, a implementação exata não importa)

let log (msg : string) =
    printfn "%s" msg

log "Sample"

Ele é chamado em todo o código com strings formatadas pelo sprintf, ex.

log (sprintf "Test %s took %d seconds" "foo" 2.345)

Eu quero curry a funcionalidade sprintf na função de log assim parece ...

logger "Test %s took %d seconds" "foo" 2.345

Eu tentei algo como

let logger fmt ([<ParamArray>] args) =
    log (sprintf fmt args)

mas não consigo descobrir como passar o argumento ParamArray até a chamada sprintf.

Como isso é feito em F #?

questionAnswers(2)

yourAnswerToTheQuestion