let union l1 l2 =
  let rec help tas l1 l2 =
    match l1 with
    | x::xs -> 
        if List.mem x l2 then 
          help tas xs l2 
        else 
          help (x::tas) xs l2
    | [] -> tas
  in
  help l2 l1 l2