implement `mset` in terms of `msetInternal`
clarify `msetInternal`'s tricky semantics