anchor.diff:    config = mkIf cfg.enable {
       systemd.services.caddy = {
         description = "Caddy web server";
  -      # upstream unit: https://github.com/caddyserver/caddy/blob/master/dist/init/linux-systemd/caddy.service
  +      # upstream unit: https://github.com/caddyserver/dist/blob/master/init/caddy.service
         after = [ "network-online.target" ];
         wants = [ "network-online.target" ]; # systemd-networkd-wait-online.service
         wantedBy = [ "multi-user.target" ];
  
positive.code:         The data directory, for storing certificates. Before 17.09, this
          would create a .caddy directory. With 17.09 the contents of the
          .caddy directory are in the specified data directory instead.
        '';
      };
  
      package = mkOption {
        default = pkgs.caddy;
        defaultText = "pkgs.caddy";
        example = "pkgs.caddy2";
        type = types.package;
        description = ''
          Caddy package to use.
  
          Note: to use Caddy v2, set this to <option>pkgs.caddy2</option>.
          v2 will become the default after it is released.
        '';
      };
    };
  
negative.code: 
      config = mkOption {
        default = "";
        example = ''
          example.com {
            encode gzip
            log
            root /srv/http
          }
        '';
        type = types.lines;
        description = ''
          Verbatim Caddyfile to use.
          Caddy v2 supports multiple config formats via adapters (see <option>services.caddy.adapter</option>).
        '';
      };
  
      adapter = mkOption {
  