anchor.diff:    /// A local variable is [initialized] if its declaration has an initializer.
     /// A function parameter is always initialized, so [initialized] is `true`.
     FlowModel<Variable, Type> declare(Variable variable, bool initialized) {
  -    VariableModel<Variable, Type> newInfoForVar = _freshVariableInfo;
  -    if (initialized) {
  -      newInfoForVar = newInfoForVar.initialize();
  -    }
  +    VariableModel<Variable, Type> newInfoForVar =
  +        new VariableModel.fresh(assigned: initialized);
   
       return _updateVariableInfo(variable, newInfoForVar);
     }
   
     /// Gets the info for the given [variable], creating it if it doesn't exist.
     VariableModel<Variable, Type> infoFor(Variable variable) =>
  -      variableInfo[variable] ?? _freshVariableInfo;
  +      variableInfo[variable] ?? new VariableModel.fresh();
   
     /// Builds a [FlowModel] based on `this`, but extending the `tested` set to
     /// include types from [other].  This is used at the bottom of certain kinds
  
positive.code: 
    /// Creates a [VariableModel] representing a variable that's never been seen
    /// before.
    VariableModel.fresh()
        : promotedTypes = null,
          tested = const [],
          assigned = false,
          unassigned = true,
          writeCaptured = false;
  
    /// Returns a new [VariableModel] in which any promotions present have been
  
negative.code:     }
      return new VariableModel<Variable, Type>(
          null, tested, assigned, false, writeCaptured);
    }
  
    /// Returns an updated model reflect a control path that is known to have
  