anchor.diff:        if pkgs.lib.any (x: x=="*") path then {} else
         if pkgs.lib.any (x: x=="<name>") path then {} else
         if pkgs.lib.any (x: x=="<name?>") path then {} else
  -      {val = scrubOptionValue value;}
  +      {val = scrubOptionValue value visitList;}
       );
   
     getStringVal = p: v: expand:
  -    {val = scrubOptionValue v;};
  -
  -  expandList = p: v: (pkgs.lib.imap (i: j: (getStringVal (p) j false)) v);
  -  expandAattrs = p: v: pkgs.lib.mapAttrs (n: v: getStringVal (p++[n]) v false) (builtins.removeAttrs v ["_args"]);
  +    {val = scrubOptionValue v [];};
   
     extraArgs = { modules = []; inherit pkgs baseModules; inherit (pkgs) modulesPath; pkgs_i686 = import <nixpkgs/nixos/lib/nixpkgs.nix> { system = "i686-linux"; config.allowUnfree = true; }; utils = import <nixpkgs/nixos/lib/utils.nix> pkgs; };
     baseModules = import <nixpkgs/nixos/modules/module-list.nix>;
  -  stableBranch = false; revCount = 56789; shortRev = "gfedcba";
  +  shortRev = "gfedcba";
     versionModule =
     { system.nixosVersionSuffix = pkgs.lib.nixpkgsVersion;
       system.nixosRevision = pkgs.rev or shortRev;
  
positive.code:             internal = opt.internal or false;
              visible = opt.visible or true;
            }
            // pkgs.lib.optionalAttrs (opt ? example) { example = scrubOptionValue opt.example; }
            // pkgs.lib.optionalAttrs (opt ? default) { default = scrubOptionValue opt.default; }
            // pkgs.lib.optionalAttrs (opt ? defaultText) { default = opt.defaultText; }
            // pkgs.lib.optionalAttrs (opt ? type) { optType = opt.type.name; }
            // pkgs.lib.optionalAttrs (useConfiguration) (createEntry opt.loc configuration false));
  
          subOptions =
            let ss = opt.type.getSubOptions opt.loc;
  
negative.code:       in
          [ docOption ] ++ subOptions ++ rest) [] (pkgs.lib.collect pkgs.lib.isOption options);
  
    attrsToStr = attr: visitList: pkgs.lib.mapAttrsToList (n: v: (toString n)+" = "+(scrubOptionValue v visitList) ) attr;
  
    configuration = import <nixos-config> { inherit pkgs; config = pkgs.config; };
  
    scrubOptionValue = x: visitList:
      let
        t = tryScrubOptionValue x visitList;
      in
        (if t.success then
          t.value
        else
          "<error>");
  
    tryScrubOptionValue = x: visitList:
      let
        visitList_ = [x] ++ visitList;
      in
        builtins.tryEval (
          if pkgs.lib.any (element: element == x) visitList then "<recursion>"
          else if pkgs.lib.isDerivation x then ("<drv>"+x.name+"</drv>")
          else if (x ? _type && x._type=="literalExample") then x.text
          else if pkgs.lib.isInt x then toString x
          else if pkgs.lib.isString x then ''"''+(toString x)+''"''
          else if pkgs.lib.isBool x then (if x then "true" else "false")
          else if pkgs.lib.isFunction x then "<function>"
          else if pkgs.lib.isList x then "[ "+(pkgs.lib.concatStringsSep " " (map (y: scrubOptionValue y visitList_) x))+" ]"
          else if pkgs.lib.isAttrs x then ''{ ''+(pkgs.lib.concatStringsSep "; " (attrsToStr (builtins.removeAttrs x ["_args"]) visitList_))+(if x != {} then "; }" else " }")
          else if builtins.typeOf x == "lambda" then "<function>"
          else toString x);
  
    createEntry = path: start: expand: visitList:
      let
        value = pkgs.lib.attrByPath path null start;
        #expandablePath = if (builtins.length path > 2) && ((builtins.elemAt path ((builtins.length path) - 2)) == "*") then pkgs.lib.take (builtins.length path - 2) path else null;
  