anchor.diff:    moduleOpts = {
   
       roster = mkOption {
  +      type = types.bool;
         default = true;
         description = "Allow users to have a roster";
       };
   
       saslauth = mkOption {
  +      type = types.bool;
         default = true;
         description = "Authentication for clients and servers. Recommended if you want to log in.";
       };
   
       tls = mkOption {
  +      type = types.bool;
         default = true;
         description = "Add support for secure TLS on c2s/s2s connections";
       };
   
       dialback = mkOption {
  +      type = types.bool;
         default = true;
         description = "s2s dialback support";
       };
   
       disco = mkOption {
  +      type = types.bool;
         default = true;
         description = "Service discovery";
       };
   
       legacyauth = mkOption {
  +      type = types.bool;
         default = true;
         description = "Legacy authentication. Only used by some old clients and bots";
       };
   
       version = mkOption {
  +      type = types.bool;
         default = true;
         description = "Replies to server version requests";
       };
   
       uptime = mkOption {
  +      type = types.bool;
         default = true;
         description = "Report how long server has been running";
       };
   
       time = mkOption {
  +      type = types.bool;
         default = true;
         description = "Let others know the time here on this server";
       };
   
       ping = mkOption {
  +      type = types.bool;
         default = true;
         description = "Replies to XMPP pings with pongs";
       };
   
       console = mkOption {
  +      type = types.bool;
         default = false;
         description = "telnet to port 5582";
       };
   
       bosh = mkOption {
  +      type = types.bool;
         default = false;
         description = "Enable BOSH clients, aka 'Jabber over HTTP'";
       };
   
       httpserver = mkOption {
  +      type = types.bool;
         default = false;
         description = "Serve static files from a directory over HTTP";
       };
   
       websocket = mkOption {
  +      type = types.bool;
         default = false;
         description = "Enable WebSocket support";
       };
  
positive.code:       };
  
        ssl = mkOption {
          description = "Paths to SSL files";
          default = null;
          options = [ sslOpts ];
        };
  
        admins = mkOption {
          description = "List of administrators of the current host";
          example = [ "admin1@example.com" "admin2@example.com" ];
          default = [];
        };
  
        extraConfig = mkOption {
          type = types.lines;
          default = '''';
          description = "Additional prosody configuration";
        };
  
  
negative.code:       modules = moduleOpts;
  
        extraModules = mkOption {
          type = types.listOf types.str;
          default = [];
          description = "Enable custom modules";
        };
  
        virtualHosts = mkOption {
  