anchor.diff:      result.add(_appendContext(ast, res));
     }
   
  +  @override
     void visitEvent(BoundEventAst ast, _) {
       var res = [
         BoundEventAst,
  
positive.code:     result.add(_appendContext(ast, res));
    }
  
    void visitElementProperty(BoundElementPropertyAst ast, _) {
      var res = [BoundElementPropertyAst, ast.type, ast.name]
        ..addAll(_humanizeBoundValue(ast.value))
  
negative.code:     templateVisitAll(this, ast.hostEvents);
    }
  
    @override
    void visitDirectiveProperty(BoundDirectivePropertyAst ast, _) {
      final res = [BoundDirectivePropertyAst, ast.directiveName]
        ..addAll(_humanizeBoundValue(ast.value));
      result.add(_appendContext(ast, res));
    }
  
    @override
    void visitProvider(ProviderAst ast, _) {}
  
    @override
    void visitI18nText(I18nTextAst ast, _) {
      var res = [I18nTextAst, ast.value.text, ast.value.metadata.description];
      if (ast.value.metadata.meaning != null) {
  