This requires changing Add so it returns *Set and calls for a different usage pattern. Same with merge below.