En F #, ¿cómo curry las funciones de ParamArray (como sprintf)?

En F #, ¿cómo curry una función que acepta un número variable de parámetros?

Tengo un código como este ... (la función de registro es solo un ejemplo, la implementación exacta no importa)

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

log "Sample"

Se llama en todo el código con cadenas formateadas en sprintf, ej.

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

Quiero curry la funcionalidad sprintf en la función de registro para que se vea como ...

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

He intentado algo como

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

pero no puedo entender cómo pasar el argumento ParamArray a la llamada sprintf.

¿Cómo se hace esto en F #?

Respuestas a la pregunta(2)

Su respuesta a la pregunta