let rec zunion = function | [z] -> z | [] -> e_app M.empty [] | z::zs -> e_app M.union [ z ; zunion zs ]