int combinedFlags = a.getFlags() & b.getFlags();
int andFlags = a.getFlags() & b.getFlags(); int orFlags = a.getFlags() | b.getFlags();
	public static IsNullValue merge(IsNullValue a, IsNullValue b) {		if (a == b) return a;		int combinedFlags = a.getFlags() & b.getFlags(); // FIXME: union appropriate for all flags?		a = a.toBaseValue();		b = b.toBaseValue();		// Left hand value should be >=, since it is used		// as the first dimension of the matrix to index.		if (a.kind < b.kind) {			IsNullValue tmp = a;			a = b;			b = tmp;		}		int result = mergeMatrix[a.kind][b.kind];		IsNullValue resultValue = instanceByFlagsList[combinedFlags >> FLAG_SHIFT][result];		return resultValue;	}