let rec zunion = function
  | [z] -> z
  | [] -> e_app "zempty" []
  | z::zs -> e_app "zunion" [ z ; zunion zs ]