查找Haskell模块所属的包

查找Haskell模块所属的包,haskell,haskell-stack,hackage,Haskell,Haskell Stack,Hackage,我是Haskell stack的新手,不知道如何找到包含特定模块的包的名称 目前,我想使用Data.Tuple.Extra(fst3)(),并想知道我应该在下面写些什么 $ stack install ???? 我已经安装了tuple包,但是它似乎没有包含Extra部分 到目前为止,我找到的所有关于安装软件包的互联网资源都是这样说的:“要使用Blahblah.Anything.something,您需要安装foooo软件包”。你怎么知道?我搜索了Stackage,但它只显示了Data.

我是Haskell stack的新手,不知道如何找到包含特定模块的包的名称

目前,我想使用
Data.Tuple.Extra(fst3)
(),并想知道我应该在下面写些什么

    $ stack install ????
我已经安装了
tuple
包,但是它似乎没有包含
Extra
部分

到目前为止,我找到的所有关于安装软件包的互联网资源都是这样说的:“要使用Blahblah.Anything.something,您需要安装
foooo
软件包”。你怎么知道?我搜索了Stackage,但它只显示了
Data.Tuple.Extra的文档,我仍然找不到包的名称


Edit:正如她/他的回答中指出的那样,
stack install
对于上述情况是错误的命令。使用
堆栈构建

在中浏览软件包文档时,页面标题的左上部分将始终提供软件包、版本号和说明。在地图上,它在这里:

您还可以使用右上角的“内容”链接转到
extra
软件包的主页,该软件包提供了完整的模块列表、许可证、到软件包主页和bug跟踪器的链接,等等

作为旁注,
stack install extra
在技术上是“安装”此软件包的错误命令。如果要使
extra
包在堆栈全局项目中可用,正确的命令是
Stack build extra
。如果要在堆栈项目中使用
extra
,则需要将
extra
添加到包的
xxx.cabal
package.yaml
文件中的依赖项中,然后运行
stack build
(无参数)来构建并安装它以供项目使用

相反,
stack install
命令相当于
stack build--copy bins
,它将包中的任何可执行文件复制到
~/.local/bin
,这样它们就在您的路径中。看。它用于安装用Haskell编写并通过Stack分发的程序,因此您可以执行
Stack install hlint
来安装
hlint
linter


在这种情况下,因为
extra
包没有可执行文件,
stack install extra
stack build extra
也会做同样的事情,但最好养成在不打算安装任何包二进制文件时使用
stack build
的习惯,以避免意外。

URL包含包名:
extra
。在网页上,您还可以在标题中找到包名:
extra-1.7.9:extra functions I use.
<代码>1.7.9
是版本号。“我使用的额外功能”是软件包的概要。这是否回答了您的问题<代码>堆栈安装用于安装二进制文件,而不是库。您想创建一个堆栈项目并向依赖项中添加
额外的
。@sjakobi谢谢!这正是我想要的。(这不是太晦涩了吗?一个人几乎不可能找到答案。)@markseemann。我之所以能够在你链接的帖子中找到我问题的答案,只是因为我在读了sjakobi的答案后才读到它。我的问题要简单得多(stack install的包名是什么?),因此答案更具体、更简单。我想如果这里没有这个线程,我会被你链接的线程弄糊涂。