anchor.diff:            info.discardPromotionsAndMarkNotUnassigned();
         if (!identical(info, newInfo)) {
           (newVariableInfo ??=
  -            new Map<Variable?, VariableModel<Variable, Type>>.from(
  +            new Map<Variable?, VariableModel<Variable, Type>>.of(
                   variableInfo))[variable] = newInfo;
         }
       }
  
positive.code:       {Reachability? reachable}) {
      reachable ??= this.reachable;
      Map<Variable?, VariableModel<Variable, Type>> newVariableInfo =
          new Map<Variable?, VariableModel<Variable, Type>>.from(variableInfo);
      reference.storeInfo(newVariableInfo, model);
      return new FlowModel<Variable, Type>.withInfo(reachable, newVariableInfo);
    }
  
negative.code:           _assignedVariables._anywhere._written.contains(entry.key)) {
          continue;
        }
        (newKnownTypes ??= new Map<Variable, Type>.of(_knownTypes))[entry.key] =
            entry.value;
      }
      if (newKnownTypes != null) _knownTypes = newKnownTypes;
  