anchor.diff:      in
         foldl (opt: f: f opt) init [
           # default settings
  -        mergeFromType
  +        functionsFromType
   
           # user settings
           addDeclaration
  
positive.code:         apply = lib.id;
        };
  
        mergeFromType = opt:
          if decl ? type && decl.type ? merge then
            opt // { merge = decl.type.merge; }
          else
            opt;
  
        addDeclaration = opt: opt // decl;
  
        ensureMergeInputType = opt:
          if decl ? type then
            opt // {
              merge = list:
                if all decl.type.check list then
                  opt.merge list
                else
                  throw "One of the definitions has a bad type.";
  
negative.code:         else opt;
  
        ensureDefaultType = opt:
          if opt ? check && opt ? default then
            opt // {
              default =
                if opt.check opt.default then
                  opt.default
                else
                  throw "The default value has a bad type.";
            }
          else opt;
  
        handleOptionSets = opt:
          if opt ? type && opt.type.hasOptions then
            let
              
              optionConfig = opts: config:
  