anchor.diff:          Each key in this dictionary should be the name of service to be advertised. The value of the key must
           be a boolean and set to true.  Alternatively, a dictionary can be used instead of a simple true value.
   
  -           ResetAtClose <boolean>
  -           If this boolean is false, the port is recycled, thus leaving clients to remain oblivious to the
  -           demand nature of job. If the value is set to true, clients receive port death notifications when
  -           the job lets go of the receive right. The port will be recreated atomically with respect to boot-strap_look_up() bootstrap_look_up()
  -           strap_look_up() calls, so that clients can trust that after receiving a port death notification,
  -           the new port will have already been recreated. Setting the value to true should be done with
  -           care. Not all clients may be able to handle this behavior. The default value is false.
  -
  -           HideUntilCheckIn <boolean>
  -           Reserve the name in the namespace, but cause bootstrap_look_up() to fail until the job has
  -           checked in with launchd.
  -
           Finally, for the job itself, the values will be replaced with Mach ports at the time of check-in with
           launchd.
         '';
  -    };
  -
  -    # TODO
  +      type = types.nullOr (types.submodule {
  +        options = {
  +          ResetAtClose = mkOption {
  +            type = types.nullOr types.bool;
  +            default = null;
  +            description = ''
  +              If this boolean is false, the port is recycled, thus leaving clients to remain oblivious to the
  +              demand nature of job. If the value is set to true, clients receive port death notifications when
  +              the job lets go of the receive right. The port will be recreated atomically with respect to boot-strap_look_up() bootstrap_look_up()
  +              strap_look_up() calls, so that clients can trust that after receiving a port death notification,
  +              the new port will have already been recreated. Setting the value to true should be done with
  +              care. Not all clients may be able to handle this behavior. The default value is false.
  +            '';
  +          };
  +
  +          HideUntilCheckIn = mkOption {
  +            type = types.nullOr types.bool;
  +            default = null;
  +            description = ''
  +              Reserve the name in the namespace, but cause bootstrap_look_up() to fail until the job has
  +              checked in with launchd.
  +            '';
  +          };
  +        };
  +      });
  +    };
  +
       Sockets = mkOption {
  -      type = types.nullOr types.attrs;
         default = null;
         description = ''
           This optional key is used to specify launch on demand sockets that can be used to let launchd know when
  
positive.code:         protocol which conforms to the criteria specified in the job configuration file.
  
          The parameters below are used as inputs to call getaddrinfo(3).
  
             SockType <string>
             This optional key tells launchctl what type of socket to create. The default is "stream" and
             other valid values for this key are "dgram" and "seqpacket" respectively.
  
             SockPassive <boolean>
             This optional key specifies whether listen(2) or connect(2) should be called on the created file
             descriptor. The default is true ("to listen").
  
             SockNodeName <string>
             This optional key specifies the node to connect(2) or bind(2) to.
  
             SockServiceName <string>
             This optional key specifies the service on the node to connect(2) or bind(2) to.
  
             SockFamily <string>
             This optional key can be used to specifically request that "IPv4" or "IPv6" socket(s) be created.
  
             SockProtocol <string>
             This optional key specifies the protocol to be passed to socket(2).  The only value understood by
             this key at the moment is "TCP".
  
             SockPathName <string>
             This optional key implies SockFamily is set to "Unix". It specifies the path to connect(2) or
             bind(2) to.
  
             SecureSocketWithKey <string>
             This optional key is a variant of SockPathName. Instead of binding to a known path, a securely
             generated socket is created and the path is assigned to the environment variable that is inher-ited inherited
             ited by all jobs spawned by launchd.
  
             SockPathMode <integer>
             This optional key specifies the mode of the socket. Known bug: Property lists don't support
             octal, so please convert the value to decimal.
  
             Bonjour <boolean or string or array of strings>
             This optional key can be used to request that the service be registered with the
             mDNSResponder(8).  If the value is boolean, the service name is inferred from the SockService-Name. SockServiceName.
             Name.
  
             MulticastGroup <string>
             This optional key can be used to request that the datagram socket join a multicast group.  If the
             value is a hostname, then getaddrinfo(3) will be used to join the correct multicast address for a
             given socket family.  If an explicit IPv4 or IPv6 address is given, it is required that the Sock-Family SockFamily
             Family family also be set, otherwise the results are undefined.
        '';
      };
    };
  
  
negative.code:       '';
      };
  
      MachServices = mkOption {
        default = null;
        example = { ResetAtClose = true; };
        description = ''
  