anchor.diff:        void setSafety(VariableDeclaration formal) {
           if (formal.isCovariant) {
             formal.formalSafety = FormalSafety.unsafe;
  -          instrumentation?.record(Uri.parse(cls.fileUri), formal.fileOffset,
  -              'checkFormal', new InstrumentationValueLiteral('unsafe'));
           }
         }
   
  
positive.code:         declaredFormal.isCovariant = true;
          if (declaredFormal.formalSafety != FormalSafety.unsafe) {
            declaredFormal.formalSafety = FormalSafety.unsafe;
            instrumentation?.record(
                Uri.parse(cls.fileUri),
                declaredFormal.fileOffset,
                'checkFormal',
                new InstrumentationValueLiteral('unsafe'));
          }
        }
        if (declaredIsAbstract) return;
  
negative.code:         }
        }
      });
  
      if (instrumentation != null) {
        // TODO(paulberry): also handle fields
        for (ShadowProcedure procedure in cls.procedures) {
          if (procedure.isStatic) continue;
          void recordFormalAnnotations(VariableDeclaration formal) {
            if (formal.interfaceSafety != InterfaceSafety.typed) {
              instrumentation.record(Uri.parse(cls.fileUri), formal.fileOffset,
                  'checkInterface', new InstrumentationValueLiteral('semiTyped'));
            }
            if (!procedure.isAbstract &&
                formal.formalSafety != FormalSafety.safe) {
              instrumentation.record(
                  Uri.parse(cls.fileUri),
                  formal.fileOffset,
                  'checkFormal',
                  new InstrumentationValueLiteral(
                      formal.formalSafety == FormalSafety.unsafe
                          ? 'unsafe'
                          : 'semiSafe'));
            }
          }
  
          void recordTypeParameterAnnotations(TypeParameter typeParameter) {
            if (typeParameter.interfaceSafety != InterfaceSafety.typed) {
              instrumentation.record(
                  Uri.parse(cls.fileUri),
                  typeParameter.fileOffset,
                  'checkInterface',
                  new InstrumentationValueLiteral('semiTyped'));
            }
            if (!procedure.isAbstract &&
                typeParameter.formalSafety != FormalSafety.safe) {
              instrumentation.record(
                  Uri.parse(cls.fileUri),
                  typeParameter.fileOffset,
                  'checkFormal',
                  new InstrumentationValueLiteral(
                      typeParameter.formalSafety == FormalSafety.unsafe
                          ? 'unsafe'
                          : 'semiSafe'));
            }
          }
  
          procedure.function.positionalParameters
              .forEach(recordFormalAnnotations);
          procedure.function.namedParameters.forEach(recordFormalAnnotations);
          procedure.function.typeParameters
              .forEach(recordTypeParameterAnnotations);
        }
      }
    }
  
    /// Creates an [AccessorNode] to track dependencies of the given [member].
  