anchor.diff:            # pkgs: config: {..}
             cfg2 = cfg {} {};
           in
  -        if __isFunction cfg0 then
  -          if builtins.isAttrs cfg1 then cfg1
  +        if builtins.isFunction cfg0 then
  +          if isAttrs cfg1 then cfg1
             else builtins.trace "Use '{pkgs, config, ...}:'." cfg2
           else cfg0;
   
  
positive.code:           if typeOf defValue == "option"
            then
              # `defValue' is an option.
              if builtins.hasAttr defName opts
              then builtins.getAttr defName opts
              else defValue.default
            else
              # `defValue' is an attribute set containing options.
              # So recurse.
              if builtins.hasAttr defName opts && builtins.isAttrs optValue 
              then addDefaultOptionValues defValue optValue
              else addDefaultOptionValues defValue {};
        }
      ) (builtins.attrNames defs));
  
    mergeDefaultOption = list:
      if list != [] && tail list == [] then head list
      else if all __isFunction list then x: mergeDefaultOption (map (f: f x) list)
      else if all __isList list then concatLists list
      else if all __isAttrs list then fold lib.mergeAttrs {} list
      else if all (x: true == x || false == x) list then fold lib.or false list
      else if all (x: x == toString x) list then lib.concatStrings list
      else throw "Cannot merge values.";
  
negative.code:       )]
        else (concatLists (map (s: (optionAttrSetToDocList 
          (l + (if l=="" then "" else ".") + s) (builtins.getAttr s attrs)))
          (attrNames attrs)));
  
    /* Option Properties */
    # Generalize the problem of delayable properties.  Any property can be created
  