anchor.diff:            else ''
               python ${./mergeJSON.py} \
                 ${lib.optionalString warningsAreErrors "--warnings-are-errors"} \
  -              ${baseOptionsJSON} $options \
  +              $baseJSON $options \
                 > $dst/options.json
             ''
         }
  
positive.code: 
    optionsNix = builtins.listToAttrs (map (o: { name = o.name; value = removeAttrs o ["name" "visible" "internal"]; }) optionsList);
  
  in rec {
    inherit optionsNix;
  
  
negative.code: 
    optionsJSON = pkgs.runCommand "options.json"
      { meta.description = "List of NixOS options in JSON format";
        buildInputs = [ pkgs.brotli pythonMD ];
        options = builtins.toFile "options.json"
          (builtins.unsafeDiscardStringContext (builtins.toJSON optionsNix));
        # convert markdown to docbook in its own derivation to cache the
        # conversion results. the conversion is surprisingly expensive.
        baseJSON =
          if baseOptionsJSON != null
          then
            pkgs.runCommand "base-json-md-converted" {
              buildInputs = [ pythonMD ];
            } ''
              python ${./mergeJSON.py} ${baseOptionsJSON} <(echo '{}') > $out
            ''
          else null;
      }
      ''
        # Export list of options in different format.
  