anchor.diff:        # definition values and locations (e.g. [ { file = "/foo.nix";
         # value = 1; } { file = "/bar.nix"; value = 2 } ]).
         merge ? mergeDefaultOption
  +    , # Whether this type has a value representing nothingness. If it does,
  +      # this should be a value of the form { value = <the nothing value>; }
  +      # If it doesn't, this should be {}
  +      # This may be used when a value is required for `mkIf false`. This allows the extra laziness in e.g. `lazyAttrsOf`.
  +      emptyValue ? {}
       , # Return a flat list of sub-options.  Used to generate
         # documentation.
         getSubOptions ? prefix: {}
  
positive.code:           )
            # Push down position info.
            (map (def: mapAttrs (n: v: { inherit (def) file; value = v; }) def.value) defs)));
        getSubOptions = prefix: elemType.getSubOptions (prefix ++ ["<name>"]);
        getSubModules = elemType.getSubModules;
        substSubModules = m: attrsOf (elemType.substSubModules m);
  
negative.code:             ) def.value
            else
              throw "The option value `${showOption loc}` in `${def.file}` is not a list.") defs)));
        emptyValue = { value = {}; };
        getSubOptions = prefix: elemType.getSubOptions (prefix ++ ["*"]);
        getSubModules = elemType.getSubModules;
        substSubModules = m: listOf (elemType.substSubModules m);
  