anchor.diff:            visible = opt.visible or true;
             type = opt.type.name or null;
           }
  -        // (if opt ? example then { example = scrubOptionValue_ (pkgs.lib.splitString "." opt.loc) opt.example []; } else {})
  -        // (if opt ? default then { default = scrubOptionValue_ (pkgs.lib.splitString "." opt.loc) opt.default []; } else {})
  +        // (if opt ? example then { example = scrubOptionValue_ (opt.loc) opt.example []; } else {})
  +        // (if opt ? default then { default = scrubOptionValue_ (opt.loc) opt.default []; } else {})
           // (if opt ? defaultText then { default = opt.defaultText; } else {});
   
           subOptions =
  
positive.code:     else if builtins.isFunction x then "<function>"
      else x;
  
    # Clean up declaration sites to not refer to the NixOS source tree.
    optionsList_ = flip map optionsList (opt: opt // {
      declarations = map (fn: stripPrefix fn) opt.declarations;
    }
    // optionalAttrs (opt ? example) { example = substFunction opt.example; }
    // optionalAttrs (opt ? default) { default = substFunction opt.default; }
  
negative.code: 
    tryScrubOptionValue = path: x: visitList:
      let
        visitList_ = ([x] ++ visitList);
      in
        builtins.tryEval (
          if x == null then null
          else if any (element: element == x) visitList then "<recursion>"
          else if isDerivation x then "<drv>"+(toString x.outPath)+"</drv>"
          else if isInt x then x
          else if isString x then x
          else if isBool x then x
          else if isFunction x then "<function>"
          else if isList x then (map (y: scrubOptionValue_ path y visitList_) x)
          else if isAttrs x then (mapAttrs (n: v: if isNull v then "<null>" else (scrubOptionValue_ path v visitList_)) x)
          else if builtins.typeOf x == "lambda" then "<lambda>"
          else toString x);
  
  