The biggest reason is because of type inference. Ocaml generally stays away from type coercions or overloading.<p>That said, Ocaml does have some voodoo magic for type-safe printf, so in the specific case of printing you can use a single function if you want<p><pre><code>    let name = &quot;Buttons840&quot; in
    Printf.printf &quot;Hello, %s!\n&quot; name</code></pre>