let cap (s1 : 'e hashset) (s2 : 'e hashset) : 'e hashset = 
  let newset = create (min (size s1) (size s2)) in
  let adder otherset elt = if mem otherset elt then add newset elt in
    if size s1 > size s1 then
      iter (adder s1) s2
    else
      iter (adder s2) s1;
    newset