Improving terminology.

Let's call the set of values for which a map is defined
its "domain".

Really we should think of maps as translucent functions.
They reveal for which values they are well-defined (either
via a predicate or an explicit set of keys) and new maps
can be derived from them. This translucency is what
PartialFunctions were supposed to accomplish in scala.
Manipulating API types instead of internal types.

It's the road to something which the rest of the world can
use without all that cursing.
Expunging all references to internal set types.

That's much nicer.