找不到模块`Control.Parallel'

时间:2020-06-27 14:04:29

标签: haskell ghc

我正在遵循this指南,然后进入“编写您的第一个并行Haskell程序”,在那里您可以使用Control.Parallel。当我尝试编译它时,我得到:

    A.hs:1:1: error:
    Could not find module `Control.Parallel'
    Use -v (or `:set -v` in ghci) to see a list of the files searched for.
  |
1 | import Control.Parallel
  | ^^^^^^^^^^^^^^^^^^^^^^^

没有地方说我必须安装任何东西。尽管如此,我仍然运行cabal install --lib parallel并且安装正确,但是仍然找不到该软件包。我运行ghc-pkg listparallel不在列表中。

我该如何解决呢?

2 个答案:

答案 0 :(得分:3)

您可以在此处执行以下两项操作之一:

  1. 您可以使用cabal启动新项目,然后添加parallel作为依赖项。为此,我将带您参考Cabal的quickstart guide
  2. 或者,您可以跳过parallel软件包。在列出的示例中,您需要导入Control.Parallel才能使用parpseq。但是,这些功能也是GHC.Conc的一部分,而baseimport Control.Parallel包的一部分。因此,要使您的程序在不涉及任何程序包管理的情况下运行,只需将import GHC.Conc替换为let mut board: [[u8; 4]; 4] = [[1, 6, 5, 2], [4, 8, 9, 3], [9, 2, 2, 5], [3, 7, 6, 7]]; ,就可以了。

答案 1 :(得分:3)

请勿使用阴谋安装或堆栈安装来管理依赖项。

代替使用cabal或stack文件列出所有这些软件包,然后使用“ build”命令将其提取到您的项目文件夹中。

使用GHC进行编译时,cabal和stack都将为依赖项提供适当的标志。

或者,找出cabal在哪里下载了该源代码,并将其与标志一起传递给GHC。认为这是不必要的低级工作。