anchor.diff:  
       port = mkOption {
         description = "Elasticsearch port to listen for HTTP traffic";
  -      default = "9200";
  -      type = types.str;
  +      default = 9200;
  +      type = types.int;
       };
   
       tcp_port = mkOption {
         description = "Elasticsearch port for the node to node communication";
  -      default = "9300";
  -      type = types.str;
  +      default = 9300;
  +      type = types.int;
       };
   
       cluster_name = mkOption {
  
positive.code:       name = "elasticsearch";
        uid = config.ids.uids.elasticsearch;
        description = "Elasticsearch daemon user";
        home = es_home;
        createHome = true;
      };
    };
  }
  
negative.code: let
    cfg = config.services.elasticsearch;
  
    esConfig = ''
      network.host: ${cfg.host}
      network.port: ${toString cfg.port}
      network.tcp.port: ${toString cfg.tcp_port}
      cluster.name: ${cfg.cluster_name}
      ${cfg.extraConf}
    '';
  
    configDir = pkgs.buildEnv {
      name = "elasticsearch-config";
      paths = [
        (pkgs.writeTextDir "elasticsearch.yml" esConfig)
        (pkgs.writeTextDir "logging.yml" cfg.logging)
      ];
    };
  
  in {
  
  