anchor.diff:      final dynamic keys = value.keys;
       var keysValid = true;
       for (final dynamic element in keys) {
  -      if (!(element is int) &&
  -          !(element is String)) {
  +      if (!(element is int) && !(element is String)) {
           keysValid = false;
           break;
         }
  
positive.code:       } else {
          _writeString(key);
        }
        // Encode the value
        var valType = val.runtimeType.toString();
        if (valType.contains('List') && valType != 'Uint8List') {
          valType = 'List';
        }
        if (valType.contains('Map')) {
          valType = 'Map';
        }
        switch (valType) {
          case 'int':
            _writeInt(val);
            break;
          case 'String':
            _writeString(val);
            break;
          case 'double':
            _writeFloat(val);
            break;
          case 'List':
            if (!indefinite) {
              final res = _writeArrayImpl(val, indefinite);
              if (!res) {
  
negative.code:               ok = false;
              }
            } else {
              val.forEach(_out.putByte as dynamic);
            }
          } else if (val is Map) {
            if (!indefinite) {
              final res = _writeMapImpl(val as Map, indefinite);
              if (!res) {
                // Fail the whole encoding
                ok = false;
              }
            } else {
              val.forEach(_out.putByte as dynamic);
            }
          } else {
            print('writeMapImpl::Iterable RT is ${val.runtimeType.toString()}');
            ok = false;
          }
        } else {
          if (val is int) {
            _writeInt(val);
          } else if (val is String) {
            _writeString(val);
          } else if (val is double) {
            _writeFloat(val);
          } else if (val is bool) {
            _writeBool(val);
          } else if (val == Null) {
            _writeNull();
          } else {
            print(
                'writeMapImpl::Non Iterable RT is ${val.runtimeType.toString()}');
            ok = false;
          }
        }
      });
      return ok;
  