anchor.diff:      ) { right = []; wrong = []; };
   
     # Take a function and evaluate it with its own returned value.
  -  finalReference = f:
  +  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.
  
positive.code:   # 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:
      let optionSet = final: configFun:
        if __isFunction configFun then configFun pkgs final
        else configFun; # backward compatibility.
  
negative.code:           (uniqFlattenAttr (optionSet final) "require" [] (toList opts))
          );
  
    fixOptionSets = merge: pkgs: opts:
      fix (fixOptionSetsFun merge pkgs opts);
  
    finalOptionSetsFun = fixOptionSetsFun;
    finalReferenceOptionSets = fixOptionSets;
  
    optionAttrSetToDocList = (l: attrs:
      (if (getAttr ["_type"] "" attrs) == "option" then
  