¿Por qué funciona printfn de F # con cadenas literales, pero no con valores de tipo cadena?

En el siguiente código F #; Yo esperaría que elprintfn está siendo llamado tres veces; cada uno con una cuerda. Sin embargo, la línea de fondo no compila (The type 'string' is not compatible with the type 'Printf.TextWriterFormat<'a>').

¿Qué hay en las dos primeras líneas que significa que esto puede funcionar? ¿No son solo cuerdas también?

open System

printfn ("\r\n") // Works
printfn ("DANNY") // Works
printfn (DateTime.Now.ToLongTimeString()) // Doesn't compile

Respuestas a la pregunta(2)

Su respuesta a la pregunta