anchor.diff:    };
   
   
  -  pathOptions = { options = {
  -
  -    pathConfig = mkOption {
  -      default = {};
  -      example = { PathChanged = "/some/path"; Unit = "changedpath.service"; };
  -      type = types.attrsOf unitOption;
  -      description = ''
  -        Each attribute in this set specifies an option in the
  -        <literal>[Path]</literal> section of the unit.  See
  -        <citerefentry><refentrytitle>systemd.path</refentrytitle>
  -        <manvolnum>5</manvolnum></citerefentry> for details.
  -      '';
  -    };
  -
  -  }; };
  +  pathOptions = {
  +    options = {
  +
  +      pathConfig = mkOption {
  +        default = {};
  +        example = { PathChanged = "/some/path"; Unit = "changedpath.service"; };
  +        type = types.attrsOf unitOption;
  +        description = ''
  +          Each attribute in this set specifies an option in the
  +          <literal>[Path]</literal> section of the unit.  See
  +          <citerefentry><refentrytitle>systemd.path</refentrytitle>
  +          <manvolnum>5</manvolnum></citerefentry> for details.
  +        '';
  +      };
  +
  +    };
  +  };
   
     stage2PathOptions = {
       imports = [
  
positive.code:   };
    stage1CommonUnitOptions = commonUnitOptions;
  
    serviceOptions = { name, config, ... }: { options = {
  
      environment = mkOption {
        default = {};
        type = with types; attrsOf (nullOr (oneOf [ str path package ]));
        example = { PATH = "/foo/bar/bin"; LANG = "nl_NL.UTF-8"; };
        description = "Environment variables passed to the service's processes.";
      };
  
      path = mkOption {
        default = [];
        type = with types; listOf (oneOf [ package str ]);
        description = ''
          Packages added to the service's <envar>PATH</envar>
          environment variable.  Both the <filename>bin</filename>
          and <filename>sbin</filename> subdirectories of each
          package are added.
        '';
      };
  
      serviceConfig = mkOption {
        default = {};
        example =
          { RestartSec = 5;
          };
        type = types.addCheck (types.attrsOf unitOption) checkService;
        description = ''
          Each attribute in this set specifies an option in the
          <literal>[Service]</literal> section of the unit.  See
          <citerefentry><refentrytitle>systemd.service</refentrytitle>
          <manvolnum>5</manvolnum></citerefentry> for details.
        '';
      };
  
      script = mkOption {
        type = types.lines;
        default = "";
        description = "Shell commands executed as the service's main process.";
      };
  
      scriptArgs = mkOption {
        type = types.str;
        default = "";
        description = "Arguments passed to the main process script.";
      };
  
      preStart = mkOption {
        type = types.lines;
        default = "";
        description = ''
          Shell commands executed before the service's main process
          is started.
        '';
      };
  
      postStart = mkOption {
        type = types.lines;
        default = "";
        description = ''
          Shell commands executed after the service's main process
          is started.
        '';
      };
  
      reload = mkOption {
        type = types.lines;
        default = "";
        description = ''
          Shell commands executed when the service's main process
          is reloaded.
        '';
      };
  
      preStop = mkOption {
        type = types.lines;
        default = "";
        description = ''
          Shell commands executed to stop the service.
        '';
      };
  
      postStop = mkOption {
        type = types.lines;
        default = "";
        description = ''
          Shell commands executed after the service's main process
          has exited.
        '';
      };
  
      jobScripts = mkOption {
        type = with types; coercedTo path singleton (listOf path);
        internal = true;
        description = "A list of all job script derivations of this unit.";
        default = [];
      };
  
    };
  
    config = mkMerge [
      (mkIf (config.preStart != "") rec {
        jobScripts = makeJobScript "${name}-pre-start" config.preStart;
        serviceConfig.ExecStartPre = [ jobScripts ];
      })
      (mkIf (config.script != "") rec {
        jobScripts = makeJobScript "${name}-start" config.script;
        serviceConfig.ExecStart = jobScripts + " " + config.scriptArgs;
      })
      (mkIf (config.postStart != "") rec {
        jobScripts = (makeJobScript "${name}-post-start" config.postStart);
        serviceConfig.ExecStartPost = [ jobScripts ];
      })
      (mkIf (config.reload != "") rec {
        jobScripts = makeJobScript "${name}-reload" config.reload;
        serviceConfig.ExecReload = jobScripts;
      })
      (mkIf (config.preStop != "") rec {
        jobScripts = makeJobScript "${name}-pre-stop" config.preStop;
        serviceConfig.ExecStop = jobScripts;
      })
      (mkIf (config.postStop != "") rec {
        jobScripts = makeJobScript "${name}-post-stop" config.postStop;
        serviceConfig.ExecStopPost = jobScripts;
      })
    ];
  
    };
  
  
negative.code:   };
  
  
    mountOptions = {
      options = {
  
        what = mkOption {
          example = "/dev/sda1";
          type = types.str;
          description = "Absolute path of device node, file or other resource. (Mandatory)";
        };
  
        where = mkOption {
          example = "/mnt";
          type = types.str;
          description = ''
            Absolute path of a directory of the mount point.
            Will be created if it doesn't exist. (Mandatory)
          '';
        };
  
        type = mkOption {
          default = "";
          example = "ext4";
          type = types.str;
          description = "File system type.";
        };
  
        options = mkOption {
          default = "";
          example = "noatime";
          type = types.commas;
          description = "Options used to mount the file system.";
        };
  
        mountConfig = mkOption {
          default = {};
          example = { DirectoryMode = "0775"; };
          type = types.attrsOf unitOption;
          description = ''
            Each attribute in this set specifies an option in the
            <literal>[Mount]</literal> section of the unit.  See
            <citerefentry><refentrytitle>systemd.mount</refentrytitle>
            <manvolnum>5</manvolnum></citerefentry> for details.
          '';
        };
  
      };
    };
  
    stage2MountOptions = {
      imports = [
  