Haskell 在default.nix中使用Hoogle配置:
我正在尝试在我的Haskell 在default.nix中使用Hoogle配置:,haskell,nix,nixos,Haskell,Nix,Nixos,我正在尝试在我的default.nix中使用hoogle设置,但出现以下错误: developPackage,error:尝试调用不是函数而是集合的东西(在第26行) 这是我的默认值。nix代码: let pkgs = import <nixpkgs> {}; compilerVersion = "ghc865"; compiler = pkgs.haskell.packages."${compilerVersion}"; in compiler.developPack
default.nix中使用hoogle
设置,但出现以下错误:
developPackage,error:尝试调用不是函数而是集合的东西(在第26行)
这是我的默认值。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\]'
'';
});
};
}
let
pkgs=import{};
compilerVersion=“ghc865”;
compiler=pkgs.haskell.packages.“${compilerVersion}”;
在里面
编译器.developPackage
{
#returnShellEnv=false;
根=./。;
#源覆盖={};
修饰符=drv:
让pkg=pkgs.haskell.lib.addBuildTools drv(带有pkgs.haskell包;
[
阴谋集团安装
卡巴尔2nix
戈西德
控制
文本
砖
]);
包装中//{
env=(pkg.env{withHoogle=true;})。重写ATTRS(旧:{
钩壳=
''
导出PS1='\n\[\033[1;32m\][\[\e]0;nix外壳:\W\a\]nix外壳:/\W]\$\[\033[0m\]'
'';
});
};
}
我试图nix构建一个看似正确的派生(default.nix
)时,收到了类似的错误消息。
最后,我发现使用--show trace
参数进行nix build
,错误在于我用户的~/.config/nixpkgs/overlays
目录中的一个覆盖层。
HTH您的示例代码对我来说非常有效,因此它一定是其他代码。