title: How to do sane "set-difference" in Ruby?
body: <p>Demo (I expect result <code>[3]</code>):</p>
  
  <pre><code>[1,2] - [1,2,3] =&gt; []    # Hmm
  [1,2,3] - [1,2] =&gt; [3]   # I see
  
  a = [1,2].to_set   =&gt; #&lt;Set: {1, 2}&gt;
  b = [1,2,3].to_set =&gt; #&lt;Set: {1, 2, 3}&gt;
  a - b              =&gt; #&lt;Set: {}&gt;  WTF!
  </code></pre>
  
  <p>And:</p>
  
  <pre><code>[1,2,9] - [1,2,3] =&gt; [9]  # Hmm. Would like [[9],[3]]
  </code></pre>
  
  <p>How is one to perform a real set difference regardless of order of the inputs?</p>
  
  <p>Ps. As an aside, I need to do this for two 2000-element arrays. Usually, array #1 will have fewer elements than array #2, but this is not guaranteed.</p>