{lib}: let inherit (lib.options) mkEnableOption mkPackageOption; inherit (lib.attrsets) recursiveUpdate; mkProgram = pkgs: name: extraConfig: recursiveUpdate { enable = mkEnableOption "Enable ${name}"; package = mkPackageOption pkgs name {}; } extraConfig; in { inherit mkProgram; }