Dlaczego printfn F # działa z ciągami literalnymi, ale nie z wartościami typu string?

W następującym kodzie F #; Spodziewałbym się, żeprintfn jest nazywany trzy razy; każdy ze sznurkiem. Jednak dolny wiersz się nie kompiluje (The type 'string' is not compatible with the type 'Printf.TextWriterFormat<'a>').

Co w pierwszych dwóch liniach oznacza, że ​​może to działać? Czy nie są to tylko smyczki?

open System

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

questionAnswers(2)

yourAnswerToTheQuestion