title: Reduce an array of array into a single array with flattening in f#
body: <p>If I have the following</p>
  
  <pre><code>type Merchant = {
      Id:int;
      OtherItems:int[] }
  
  
  let (merchant1:Merchant) = {
      Id = 1;
      OtherItems = [| 1; 2 |]}
  
  let (merchant2:Merchant) = {
      Id = 2;
      OtherItems = [| 1; 2 |]}
  
  
  let merchants = [| merchant1;merchant2|]
  </code></pre>
  
  <p>And I want to flatten to the following, how do I do it?</p>
  
  <pre><code>Id = 1 OtherItems 1  
  Id = 1 OtherItems 2 
  Id = 2 OtherItems 1  
  Id = 2 OtherItems 2
  </code></pre>
  
  <p>This is what I have come up with but cant seem to get any further</p>
  
  <pre><code>let x = 
      merchants
       |&gt; Array.map(fun merchant -&gt; merchant, merchant.OtherItems)
  </code></pre>
  
  <p>Note: I could do the long way in c# oo style but want to use functional way</p>