anchor.diff:      return _nextState;
     }
   
  +  /// Sets the state to be rendered on the next update.
  +  /// Setting the nextState automatically marks the Widget as dirty.
     void set nextState(State s) {
       _nextState = s;
       updated.add(this);
  
positive.code:   Map<Symbol,dynamic> get props;
  }
  
  /// A DOM element.
  class Elt extends View {
    final String name;
    final Map<Symbol, dynamic> _props;
  
negative.code:   }
  }
  
  /// A plain text view.
  ///
  /// The framework needs to find the corresponding DOM element using a query on a
  /// data-path attribute, so the text is actually rendered inside a <span>.
  /// (We can't support mixed-content HTML directly and instead use a list of Elt and
  /// Text views as the closest equivalent.)
  ///
  /// However, if the parent's "inner" property is just a string, it's handled as a
  /// special case and the Text class isn't used.
  class Text extends View {
    final String value;
    Text(this.value);
  