title: Name for function like Option.bind that returns Some(x) when input is None
body: <p>The normal <code>Option.bind</code> function is defined like this:</p>
  
  <pre><code>// ('T -&gt; 'U option) -&gt; 'T option -&gt; 'U option
  let bind f x =
      match x with
      | None -&gt; None
      | Some x' -&gt; f x'
  </code></pre>
  
  <p>I am in need of a slightly different version of this:</p>
  
  <pre><code>// ('T -&gt; 'U -&gt; 'U option) -&gt; 'T option -&gt; ('U -&gt; 'U option)
  let myBind f x =
      match x with
      | None -&gt; Some
      | Some x' -&gt; f x'
  </code></pre>
  
  <p><strong>Does this function have a standard name?</strong> (If not I'll gladly accept concise suggestions.)</p>
  
  <hr>
  
  <p>For interested readers, my usecase is this: I have a business object (say <code>Order</code>) I want to apply a constraint to (order date, customer, etc.). The functions that apply constraints to e.g. an <code>Order</code> have signature <code>'Constraint -&gt; Order -&gt; Order option</code>. They return <code>Some order</code> if the order passed the constraint, and <code>None</code> otherwise (and can thus be composed using <code>Option.bind</code>). Now, if the constraint is <code>None</code>, it's essentially a no-op and <code>Some order</code> should be returned. Instead of having all constraint functions accept <code>'Constraint option</code> I can factor out this part of the logic using the function above (which then need to be applied during composition).</p>
  
  <p>I originally called the function something like <code>bindConstraint</code>, but it's completely generic and really has nothing to do with my usecase (ref. Mark Seemann's <a href="http://blog.ploeh.dk/2015/08/17/when-x-y-and-z-are-great-variable-names/" rel="nofollow noreferrer">article on the topic</a>). Due to its similarity with <code>bind</code> I wondered if there is a standard name for this.</p>