【问题标题】:Configuring withHoogle in default.nix:在 default.nix 中配置 withHoogle:
【发布时间】:2026-01-18 13:45:01
【问题描述】:

我正在尝试在我的 default.nix 中设置 withHoogle,但出现此错误:

developPackage,错误:尝试调用不是函数而是集合的东西(第 26 行)。

这是我的default.nix 代码:

let
  pkgs = import <nixpkgs> {};
  compilerVersion = "ghc865"; 
  compiler = pkgs.haskell.packages."${compilerVersion}";
in
compiler.developPackage
  {
    # returnShellEnv = false;

    root = ./.;

    # source-overrides = {};

        modifier = drv:
          let pkg = pkgs.haskell.lib.addBuildTools drv (with  pkgs.haskellPackages;
        [
         cabal-install
         cabal2nix
         ghcid

         control
         text
         brick
        ]);
      in pkg // {
       env = (pkg.env { withHoogle = true; }).overrideAttrs (old: {
          shellHook =
          ''
            export PS1='\n\[\033[1;32m\][\[\e]0;nix-shell: \W\a\]nix-shell:/\W]\$ \[\033[0m\]'
          '';
    });
  };
}

【问题讨论】:

  • 你的示例代码非常适合我,所以它一定是别的东西。

标签: haskell nix nixos


【解决方案1】:

在尝试 nix-build 看似正确的推导 (default.nix) 时,我收到了类似的错误消息。 最终我发现使用--show-trace 参数到nix-build,错误在于我在用户的~/.config/nixpkgs/overlays 目录中的覆盖层。 高温

【讨论】: