我的程序在 IO 中使用 GHC GhcMonad ,在IO中进行一些计算并在返回结果之前强制计算结果; 是这样的: 在暂停点,我可以看到进程使用了 30+ GB 的 RAM; 由于continueProcessingOutsideGhc本身也使用了一些 memory,这可能导致在continueP ...
我创建了一个替代 Prelude 用于教学 Haskell 名学生,称为FirstPrelude 。 目标之一是从标准库中删除类型类,以便错误消息更多地是经典的 Hindley-Milner 类型,而不是得到No instance错误。 这很有效。 然而,我没有预料到的是,当模式匹配时,GHC 回避 ...
根据+RTS -p time inherited,我 90% 的执行时间都花在运行一个基于Generic的instance MyClass MyType定义上,对于一个 class 递归超过 100 多个类型/实例。 我已经尝试让 GHC 告诉我详细信息,以确定哪些实例速度慢,或者哪些实例被更频繁 ...
尝试使用 ghc ( ghcup install ghc 9.4.3 ) 更新 ghcup 会导致错误: 这是日志说的: 我尝试使用 curl 命令,他们说会导致 powershell (curl.exe -fL -o "C:\ghcup\tmp\ghcup-3da46c8d7d5a204f\gh ...
使用random-fu 0.3.0.0 时,我对探索random的类型感到困惑。 检查:t我明白了ghci> :t Data.Random.sample Data.Random.sample :: (Data.Random.Distribution d t, Data.Random.St ...
Cabal 突然停止构建我的项目。 自上次成功构建以来,项目本身没有太大变化,我猜只安装了操作系统更新。 我在cabal v2-build上遇到的错误是: 此外, cabal repl也停止工作: 我在ghc 8.10.7 , macOS Monterey 12.6.1 和cabal --vers ...
我是 Haskell 的新手,我正在尝试使用官方 haskell 插件在 vscode 中设置 haskell 插件,但我在设置 hls 插件的代码提示和语法识别时遇到了一些问题。 我已经安装了 ghc-9.2.4 和 9.2.3(通过 ghcup),因为插件完全支持它们,但不支持推荐的 9.2.5 ...
以下代码: 编译失败并出现以下错误: 我想这是有道理的,如果f做了一些奇怪的家庭事情。 但是我的f没有,只有Maybe和Either ,所以我相信用它的NewInt替换Int应该可以。 我怎样才能让 GHC 相信这一点(假设我没有错)。 我认为这是需要一些RoleAnnotations的东西,但我没 ...
考虑以下模块: 假设我们在这里也使用 GHC。 在这里我要注意一些事情(我相信这是真的,如果我错了请纠正我): 除非有一些花哨的优化/内联, doBigSum可能不会被缓存,而是为每个引用重新计算,因为doBigSum实际上有一个隐藏的参数,它是它正在实例化的类型a的类型类字典。 但是,在实例定义 ...
我是 Haskell 的新手,发现ghci REPL 中的:type命令对于交互式地弄清楚事情是如何工作的非常有用。 到目前为止,我只使用了 base package 中的东西,但现在我想在 REPL 中使用:type命令的distributive 。 我到底该怎么做? 如果重要的话,我在 mac ...
我有一个 package 生成 SVG 代码(图像和图标) 但是,生成的 svg 代码太大,因为所有数字都有很多小数位。 是否有语言编译指示或类似的东西可以限制所有数字只有 3 位小数? 我想用一些最少的代码来做到这一点,我不想将一些 function 分别应用于每个Float 。 ...
内联编译指示的 GHC 文档: GHC(与往常一样使用 -O)尝试内联(或“展开”)“足够小”的函数/值,[...] INLINE pragma 的主要作用是声明函数的“成本”非常低。 正常的展开机器将非常热衷于内联它。 [...] 我认为这意味着如果没有启用优化,即使{-# INLINE ...
我刚刚将一个项目更新到 GHC 9.2.4 并且一些模块引发了ambiguous-fields警告。 阅读-XDuplicateRecordFields ,我知道在用作选择器时有必要消除不同类型中的相同字段名称的歧义。 但是这段代码: 也提出了它: The record update cus ...
是否有组合器以无点样式编写 Haskell 类型? 我有一个类型同义词,类似于: 我希望能够以无点风格编写它的右侧,以便实例化一个要求参数是 monad 转换器的类型类。 即,有一些类型类,如: 我想用我的一堆转换器来实例化它。 但是,我需要为它提供某种(* -> *) -> * -& ...
我使用 ghc 9.4.2 版和 cabal 3.8.1.0 版。 我试图打开串行并得到错误。 由于来自阴谋集团 package 文件夹,我使用串行端口版本 0.5.1,最新版本为 0.5.4,但此版本与基本 package 冲突: 我不知道这个阴谋集团如何用这个 ghc 版本安装 0.5.1 版本 ...
这是错误消息: 我不确定该文件正在用于什么其他进程,我检查了日志,他们说与这些错误消息基本相同,我尝试将ghcup-d5bf0-8.10.7的内容移动到名为8.10.7在ghcub\ghc中,我在尝试使用 ghci 时仍然出错。 我真的不熟悉这一切,所以我一直在遵循 Haskell.org 上的说 ...
我尝试从 hackage 构建qhull并得到错误 该文件在Cdir中,cabal 文件的相关部分是 文件qhull_ra.h未列为 C 源文件,因为它是 header 文件。 我没有编写代码,也没有将 C 代码包含到 haskell 包中的经验。 失败有时会发生,有时不会,但我不知道什么时候发生 ...
我有一个用 Haskell 编写的 web 应用程序(在客户端使用 ghcjs,在服务器端使用 ghc),我需要一种方法来收集分布在整个模块中的 CSS 值。 目前我使用的技术涉及CssStyle class 和模板 haskell。 When a module needs to export s ...
有ghc-pkg dot但这似乎只适用于 ghc package 数据库。 ...