anchor.diff:          '';
         };
         separator = mkOption {
  -        type = types.str;
  -        default = ";";
  +        type = types.nullOr types.str;
  +        default = null;
           description = ''
             Separator placed between concatenated source label values.
           '';
  
positive.code:         '';
        };
        dns_sd_configs = mkOption {
          type = types.listOf promTypes.dns_sd_config;
          default = [];
          description = ''
            List of DNS service discovery configurations.
          '';
        };
        consul_sd_configs = mkOption {
          type = types.listOf promTypes.consul_sd_config;
          default = [];
          description = ''
            List of Consul service discovery configurations.
          '';
        };
        file_sd_configs = mkOption {
          type = types.listOf promTypes.file_sd_config;
          default = [];
          description = ''
            List of file service discovery configurations.
          '';
        };
        static_configs = mkOption {
          type = types.listOf promTypes.static_config;
          default = [];
          description = ''
            List of labeled target groups for this job.
          '';
        };
        ec2_sd_configs = mkOption {
          type = types.listOf promTypes.ec2_sd_config;
          default = [];
          description = ''
            List of EC2 service discovery configurations.
          '';
        };
        relabel_configs = mkOption {
          type = types.listOf promTypes.relabel_config;
          default = [];
          description = ''
            List of relabel configurations.
          '';
  
negative.code:   promTypes.relabel_config = types.submodule {
      options = {
        source_labels = mkOption {
          type = types.nullOr (types.listOf str);
          default = null;
          description = ''
            The source labels select values from existing labels. Their content
  