constructor(inclusionMask, desiredValueMask, parityMask=0) {
        if ((desiredValueMask & ~inclusionMask) !== 0) {
            throw new DetailedError("Desired un-included bits", {inclusionMask, desiredValueMask});
        }
        if (parityMask !== 0 && Util.popcnt(inclusionMask & parityMask) !== 1) {
            throw new DetailedError("Exactly one parity bit must be in the inclusion mask",
                {inclusionMask, parityMask});
        }

        /** @type {!int} */
        this.inclusionMask = inclusionMask;
        /** @type {!int} */
        this.desiredValueMask = desiredValueMask;
        /** @type {!int} */
        this.parityMask = parityMask;
    }
@param {!int} inclusionMask.
@param {!int} desiredValueMask
@param {!int=0} parityMask
@property {!int} inclusionMask.
@property {!int} desiredValueMask