Is there a standard implementation of F# defaultArg accepting lazy?
<p>I need an implementation of <code>defaultArg</code> function with <code>Lazy</code> as second parameter. Here is a usage example:</p>

<pre><code>defaultArgLazy option (lazy doSomeHeavyWorkThatShouldBeAvoided())
</code></pre>

<p>It's quite easy to implement</p>

<pre><code>let defaultArgLazy o (p:'a Lazy) = 
  match o with 
  | Some v -&gt; v 
  | None -&gt; p.Force()
</code></pre>

<p>But I wonder if there is a standard implementation that I'm missing.</p>