【发布时间】:2014-07-29 16:41:36
【问题描述】:
截至撰写本文时,我正在运行最新的 GHC (7.9.20140608) 和 cabal (1.20.0.0),似乎 attoparsec 失败了。
Data/Attoparsec/ByteString/Internal.hs:519:7:
Illegal equational constraint a_audv ~ (ByteString, t)
(Use GADTs or TypeFamilies to permit this)
In the context: (a_audv ~ (ByteString, t))
While checking the inferred type for ‘succ'’
In the expression:
let
succ' t' pos' more' a
= succ t' pos' more' (substring pos (pos' - pos) t', a)
in runParser p t pos more lose succ'
In the second argument of ‘($)’, namely
‘\ t pos more lose succ
-> let succ' t' pos' more' a = ...
in runParser p t pos more lose succ'’
我是否缺少任何语言扩展?还是这个问题会更棘手一点?这是我的阴谋集团文件:http://lpaste.net/105329
对此的任何帮助都会令人难以置信:) 黑客快乐!
【问题讨论】:
-
错误信息表明 attoparsec 只需要指定一些 GHC 发布版本不需要的扩展。为什么要使用夜间快照?它们真的很不稳定,并且会引入大多数库维护者直到发布日期附近才解决的重大更改。
-
啊,我明白了,谢谢。如果您的发行版的包管理器没有升级到 >=7.8 的标准方法是什么?再次感谢您的帮助。
-
没有使用高于 7.8 的 GHC 的标准方法。唯一应该使用比 7.8 更新的 GHC 版本的人是从事 GHC 本身工作的人。在这一点上,甚至修复库以与 7.10 一起使用还为时过早——还有太多的变化即将到来。
-
啊,我明白了,这是有道理的。但是,我自己在让 7.8.2.1 在 ubuntu 14.04 上工作时遇到了一些困难。我在 gentoo 中取得了一些成功,但我还精通端口。要启动并运行新时代的 haskell 工具链,您会选择什么发行版?
标签: haskell types type-conversion type-constraints attoparsec