anchor.diff:    LazyExpression eqNull(_Var variable) {
       return () {
         var expr = _Expression();
  -      flow.conditionEqNull(expr, variable, notEqual: false);
  +      _flow.conditionEqNull(expr, variable, notEqual: false);
         return expr;
       };
     }
   
     /// Invokes flow analysis of an `if` statement with no `else` part.
     void if_(LazyExpression cond, void ifTrue()) {
  -    flow.ifStatement_thenBegin(cond());
  +    _flow.ifStatement_thenBegin(cond());
       ifTrue();
  -    flow.ifStatement_end(false);
  +    _flow.ifStatement_end(false);
     }
   
     /// Invokes flow analysis of an `if` statement with an `else` part.
     void ifElse(LazyExpression cond, void ifTrue(), void ifFalse()) {
  -    flow.ifStatement_thenBegin(cond());
  +    _flow.ifStatement_thenBegin(cond());
       ifTrue();
  -    flow.ifStatement_elseBegin();
  +    _flow.ifStatement_elseBegin();
       ifFalse();
  -    flow.ifStatement_end(false);
  +    _flow.ifStatement_end(false);
     }
   
     @override
  
positive.code:   LazyExpression isNotType(_Var variable, String type) {
      return () {
        var expr = _Expression();
        flow.isExpression_end(expr, variable, true, _Type(type));
        return expr;
      };
    }
  
negative.code:   LazyExpression or(LazyExpression lhs, LazyExpression rhs) {
      return () {
        var expr = _Expression();
        _flow.logicalBinaryOp_rightBegin(lhs(), isAnd: false);
        _flow.logicalBinaryOp_end(expr, rhs(), isAnd: false);
        return expr;
      };
    }
  
    /// Causes [variable] to be promoted to [type].
    void promote(_Var variable, String type) {
      if_(isNotType(variable, type), _flow.handleExit);
    }
  
    @override
  