Por que o printfn do F # trabalha com strings literais, mas não com valores do tipo string?

No seguinte código F #; Eu esperaria que oprintfn está sendo chamado três vezes; cada um com uma string. No entanto, a linha de fundo não compila (The type 'string' is not compatible with the type 'Printf.TextWriterFormat<'a>').

O que é sobre as duas primeiras linhas que significa que isso pode funcionar? Eles não são apenas cordas também?

open System

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

questionAnswers(2)

yourAnswerToTheQuestion