introduced symbolic union (maybe using the ast instead is a good idea)