anchor.diff:    ###### implementation
     config = mkIf cfg.enable {
   
  -    environment.systemPackages = [ pkgs.rabbitmq_server ];
  +    # This is needed so we will have 'rabbitmqctl' in our PATH
  +    environment.systemPackages = [ cfg.package ];
  +
  +    services.epmd.enable = true;
   
       users.users.rabbitmq = {
         description = "RabbitMQ server user";
  
positive.code: 
      users.groups.rabbitmq.gid = config.ids.gids.rabbitmq;
  
      systemd.services.rabbitmq = {
        description = "RabbitMQ Server";
  
        wantedBy = [ "multi-user.target" ];
        after = [ "network.target" ];
  
        path = [ pkgs.rabbitmq_server pkgs.procps ];
  
        environment = {
          RABBITMQ_MNESIA_BASE = "${cfg.dataDir}/mnesia";
          RABBITMQ_NODE_IP_ADDRESS = cfg.listenAddress;
          RABBITMQ_NODE_PORT = toString cfg.port;
          RABBITMQ_LOGS = "-";
          RABBITMQ_SASL_LOGS = "-";
          RABBITMQ_PID_FILE = "${cfg.dataDir}/pid";
          SYS_PREFIX = "";
          RABBITMQ_ENABLED_PLUGINS_FILE = pkgs.writeText "enabled_plugins" ''
            [ ${concatStringsSep "," cfg.plugins} ].
          '';
        } //  optionalAttrs (cfg.config != "") { RABBITMQ_CONFIG_FILE = config_file_wo_suffix; };
  
        serviceConfig = {
          ExecStart = "${pkgs.rabbitmq_server}/sbin/rabbitmq-server";
          ExecStop = "${pkgs.rabbitmq_server}/sbin/rabbitmqctl stop";
          User = "rabbitmq";
          Group = "rabbitmq";
          WorkingDirectory = cfg.dataDir;
        };
  
        postStart = ''
          rabbitmqctl wait ${cfg.dataDir}/pid
        '';
  
        preStart = ''
          ${optionalString (cfg.cookie != "") ''
              echo -n ${cfg.cookie} > ${cfg.dataDir}/.erlang.cookie
              chmod 600 ${cfg.dataDir}/.erlang.cookie
          ''}
        '';
      };
  
  
negative.code:         '';
        };
  
        configItems = mkOption {
          default = {};
          type = types.attrsOf types.str;
          example = ''
            {
              "auth_backends.1.authn" = "rabbit_auth_backend_ldap";
              "auth_backends.1.authz" = "rabbit_auth_backend_internal";
            }
          '';
          description = ''
            New style config options.
  
            See http://www.rabbitmq.com/configure.html
          '';
        };
  
        config = mkOption {
          default = "";
          type = types.str;
          description = ''
            Verbatim advanced configuration file contents.
            Prefered way is to use configItems.
  
            See http://www.rabbitmq.com/configure.html
          '';
        };
  