anchor.diff:  
         port = mkOption {
           description = "Graphite web frontend port";
  -        default = "8080";
  -        type = types.str;
  +        default = 8080;
  +        type = types.int;
         };
       };
   
  
positive.code:   ###### implementation
  
    config = mkIf (cfg.carbon.enableAggregator || cfg.carbon.enableCache || cfg.carbon.enableRelay || cfg.web.enable) {
      environment.etc = lists.filter (el: el.source != null) [
        { source = writeTextOrNull "carbon.conf" cfg.carbon.config;
          target = "graphite/carbon.conf"; }
        { source = writeTextOrNull "storage-agregation.conf" cfg.carbon.storageAggregation;
          target = "graphite/storage-agregation.conf"; }
        { source = writeTextOrNull "storage-schemas.conf" cfg.carbon.storageSchemas;
          target = "graphite/storage-schemas.conf"; }
        { source = writeTextOrNull "blacklist.conf" cfg.carbon.blacklist;
          target = "graphite/blacklist.conf"; }
        { source = writeTextOrNull "whitelist.conf" cfg.carbon.whitelist;
          target = "graphite/whitelist.conf"; }
        { source = writeTextOrNull "rewrite-rules.conf" cfg.carbon.rewriteRules;
          target = "graphite/rewrite-rules.conf"; }
        { source = writeTextOrNull "relay-rules.conf" cfg.carbon.relayRules;
          target = "graphite/relay-rules.conf"; }
        { source = writeTextOrNull "aggregation-rules.conf" cfg.carbon.aggregationRules;
          target = "graphite/aggregation-rules.conf"; }
      ];
  
      systemd.services.carbonCache = mkIf cfg.carbon.enableCache {
        description = "Graphite Data Storage Backend";
        wantedBy = [ "multi-user.target" ];
        after = [ "network-interfaces.target" ];
        environment = carbonEnv;
        serviceConfig.ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts "carbon-cache"}";
        restartTriggers = [
          pkgs.pythonPackages.carbon
          cfg.carbon.config
  
negative.code:         cfg.carbon.rewriteRules
        ];
        preStart = ''
          mkdir -m 0700 -p ${cfg.dataDir}/whisper
          if [ "$(id -u)" = 0 ]; then chown -R graphite:graphite ${cfg.dataDir}; fi
        '';
      };
  
      systemd.services.carbonAggregator = {
        enable = cfg.carbon.enableAggregator;
        description = "Carbon Data Aggregator";
        wantedBy = [ "multi-user.target" ];
        after = [ "network-interfaces.target" ];
        environment = carbonEnv;
        serviceConfig = {
          ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts "carbon-aggregator"}";
          User = "graphite";
          Group = "graphite";
        };
        restartTriggers = [
          pkgs.pythonPackages.carbon cfg.carbon.config cfg.carbon.aggregationRules
        ];
      };
  
      systemd.services.carbonRelay = {
        enable = cfg.carbon.enableRelay;
        description = "Carbon Data Relay";
        wantedBy = [ "multi-user.target" ];
        after = [ "network-interfaces.target" ];
        environment = carbonEnv;
        serviceConfig = {
          ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts "carbon-relay"}";
          User = "graphite";
          Group = "graphite";
        };
        restartTriggers = [
          pkgs.pythonPackages.carbon cfg.carbon.config cfg.carbon.relayRules
        ];
      };
  
      systemd.services.graphiteWeb = {
        enable = cfg.web.enable;
        description = "Graphite Web Interface";
        wantedBy = [ "multi-user.target" ];
        after = [ "network-interfaces.target" ];
  