anchor.diff:      else
         [ module ];
   
  +
     # Handle mkMerge attributes which are left behind by previous delay
     # properties and convert them into a list of modules. Delay properties
     # inside the config attribute of a module and create a second module if a
  
positive.code: 
    fixMergeModules = initModules: {...}@args:
      lib.fix (result:
        # This trick avoid an infinite loop because names of attribute are
        # know and it is not require to evaluate the result of moduleMerge to
        # know which attribute are present as argument.
        let module = { inherit (result) options config; }; in
  
        moduleMerge "" (
          moduleClosure initModules (module // args)
        )
      );
  
    # Visit all definitions to raise errors related to undeclared options.
    checkModule = path: {config, options, ...}@m:
  
negative.code:         operator = m: imap (moduleImport m) (getImports m);
        });
  
  
    moduleApply = funs: module:
      lib.mapAttrs (name: value:
  