title: Elegant Array.multipick(?) implementation
body: <p>I'd like to implement something akin to imaginary <code>Array.multipick</code>:</p>
  
  <pre><code>Array.multipick : choosers:('a -&gt; bool) [] -&gt; array:'a [] -&gt; 'a []
  </code></pre>
  
  <p>Internally, we test each array's element with all <code>choosers</code>, the first <code>chooser</code> to return <code>true</code> is removed from <code>choosers</code> array, and we add that <code>chooser</code>'s argument to the result. After that, we continue interation <em>while <code>choosers</code> array has elements left</em>. </p>
  
  <p>The last part is important, because without early exit requirement this could be solved with just <code>Array.fold</code>.</p>
  
  <p>This could be easily implemented with something like:</p>
  
  <pre><code>let rec impl currentIndex currentChoosers results
  </code></pre>
  
  <p>But it's too procedural for my taste. Maybe there's more elegant solution?</p>