class MaskedLong implements Comparable<MaskedLong> {

	public MaskedLong shiftRightLogical(long n) {
		if (n == 0) {
			return this;
		}
		// Zeros, not unknowns, fill in the left.
		long atleft = Long.MIN_VALUE >> (n - 1);
		return fromMaskAndValue((this.msk >>> n) | atleft, this.val >>> n);
	}

	protected  MaskedLong(long msk, long val);

}