DfaValue (@NotNull DfaValue value) { if (value instanceof DfaVariableValue) { return canonicalize((DfaVariableValue)value); } if (value instanceof DfaWrappedValue boxedValue) { DfaValue canonicalized = canonicalize(boxedValue.getWrappedValue()); if (canonicalized == boxedValue.getWrappedValue()) return boxedValue; return myFactory.getWrapperFactory().createWrapper(boxedValue.getDfType(), boxedValue.getSpecialField(), canonicalized); } return value; }