class MaskedLong implements Comparable<MaskedLong> {

	public MaskedLong shiftLeft(long n) {
		if (n == 0) {
			return this;
		}
		// Zeros, not unknowns, fill the right
		long atright = ~((-1L) << n);
		return fromMaskAndValue((this.msk << n) | atright, this.val << n);
	}

	protected  MaskedLong(long msk, long val);

}