let rec union_a s1 s2 =
  match s1 with
      [] -> s2
    | e::s1' -> (union s1' (add_elt e s2))