union of two psMaps
creates a new psMap that maps all the keys that exist either in psMap.this
or in other to the values they are mapped to. In case a key k exists in
both psMap.this and other, it will be mapped to psMap.this[k] or to other[k],
but it is undefined to which of these two.
helper to add 'psMap.this.data[l..r]' to 'a' and return the resulting map.