anchor.diff:    # Evaluate a list of option sets that would be merged with the
     # function "merge" which expects two arguments.  The attribute named
     # "require" is used to imports option declarations and bindings.
  -  finalOptionSetsFun = merge: pkgs: opts:
  +  fixOptionSetsFun = merge: pkgs: opts:
       let optionSet = final: configFun:
         if __isFunction configFun then configFun pkgs final
         else configFun; # backward compatibility.
  
positive.code:           (uniqFlattenAttr (optionSet final) "require" [] (toList opts))
          );
  
    finalReferenceOptionSets = merge: pkgs: opts:
      finalReference (finalOptionSetsFun merge pkgs opts);
  
    optionAttrSetToDocList = (l: attrs:
      (if (getAttr ["_type"] "" attrs) == "option" then
  
negative.code:     ) { right = []; wrong = []; };
  
    # Take a function and evaluate it with its own returned value.
    fix = f:
      (rec { result = f result; }).result;
  
    finalReference = fix; # bad name
  
    # flatten a list of sets returned by 'f'.
    # f      : function to evaluate each set.
  