anchor.diff:        'byElementKind': byElementKind,
         'byTokenType': byTokenType,
         'byTypeMatch': byTypeMatch,
  +      'distanceByDepthMap': _encodeIntIntMap(distanceByDepthMap),
       });
     }
   
     /// Add the data in the [source] map to the [target] map.
  -  void _addToMap(Map<String, Map<String, int>> target,
  -      Map<String, Map<String, int>> source) {
  +  void _addToMap<K>(Map<K, Map<K, int>> target, Map<K, Map<K, int>> source) {
       for (var outerEntry in source.entries) {
         var innerTarget = target.putIfAbsent(outerEntry.key, () => {});
         for (var innerEntry in outerEntry.value.entries) {
  
positive.code:     sink.writeln('');
      sink.writeln('Structural indicators');
      _writeContextMap(sink, data.byDistance);
      _writeTokenData(sink, data.tokenDistances);
    }
  
    /// Return the minimum widths for each of the columns in the given [table].
    ///
    /// The table is represented as a list or rows, where each row is a list of the
    /// contents of the cells in that row.
    ///
    /// Throws an [ArgumentError] if the table is empty or if the rows do not
    /// contain the same number of cells.
  
negative.code:       return value;
      }
      throw FormatException('Expected a JSON map.', value);
    }
  
    /// Decode the content of the [source] map into the [target] map, using the
    /// [keyMapper] to map the inner keys from a string to a [T].
    void _decodeIntIntMap(
        Map<int, Map<int, int>> target, Map<String, dynamic> source) {
      var outerMap = _convert(source);
      for (var outerEntry in outerMap.entries) {
        var outerKey = int.parse(outerEntry.key);
        var innerMap = _convert(outerEntry.value);
        for (var innerEntry in innerMap.entries) {
          var innerKey = int.parse(innerEntry.key);
          var count = innerEntry.value as int;
          target.putIfAbsent(outerKey, () => {})[innerKey] = count;
        }
      }
    }
  
    /// Decode the content of the [source] map into the [target] map, using the
  