private @NotNull DfaBinOpValue doCreate(DfaVariableValue left, DfaValue right, DfIntegralType resultType, LongRangeBinOp op) {
      long hash = ((long)left.getID() << 32) | right.getID();
      Key key = new Key(hash, op, resultType);
      return myValues.computeIfAbsent(key, k -> new DfaBinOpValue(left, right, resultType, op));
    }
private @NotNull DfaBinOpValue doCreate(DfaVariableValue left, DfaValue right, DfIntegralType resultType, LongRangeBinOp op)