Haskell 阴谋集团安装fpco api错误

Haskell 阴谋集团安装fpco api错误,haskell,cabal,cabal-install,Haskell,Cabal,Cabal Install,最近,我试图通过cabal安装在OS X 10.9上安装fpco api,但在构建阶段出错。以下是错误列表: ... lots of 'loading package' Loading package asn1-data-0.7.1 ... linking ... done. Loading package asn1-types-0.2.3 ... linking ... done. Loading package crypto-pubkey-types-0.4.1 ... linking ..

最近,我试图通过cabal安装在OS X 10.9上安装fpco api,但在构建阶段出错。以下是错误列表:

... lots of 'loading package'
Loading package asn1-data-0.7.1 ... linking ... done.
Loading package asn1-types-0.2.3 ... linking ... done.
Loading package crypto-pubkey-types-0.4.1 ... linking ... done.
Loading package pem-0.2.1 ... linking ... done.
Loading package certificate-1.3.9 ... linking ... done.
Loading package publicsuffixlist-0.1 ... linking ... done.
Loading package regex-base-0.93.2 ... linking ... done.
Loading package regex-posix-0.95.2 ... linking ... done.
Loading package regex-compat-0.95.1 ... linking ... done.
Loading package socks-0.5.4 ... linking ... done.
Loading package crypto-numbers-0.2.3 ... linking ... done.
Loading package crypto-pubkey-0.2.4 ... linking ... done.
Loading package tls-1.1.5 ... linking ... done.
Loading package cipher-rc4-0.1.4 ... linking ... done.
Loading package tls-extra-0.6.6 ... linking ... done.
Loading package http-conduit-1.9.6 ... linking ... done.
Loading package hslogger-1.2.3 ... linking ... done.
Loading package MissingH-1.2.0.2 ... linking ... done.
Loading package ConfigFile-1.1.1 ... linking ... done.
[ 5 of 10] Compiling FP.API.Run ( src/library/FP/API/Run.hs, dist/build/FP/API/Run.o )

src/library/FP/API/Run.hs:37:1: Warning:
Module `Prelude' does not export `catch'
[ 6 of 10] Compiling FP.API.TH ( src/library/FP/API/TH.hs, dist/build/FP/API/TH.o )
[ 7 of 10] Compiling FP.Server.Types ( src/library/FP/Server/Types.hs, dist/build/FP/Server/Types.o )

src/library/FP/Server/Types.hs:97:36:
Ambiguous occurrence `Loc'
It could refer to either `FP.Server.Types.Loc',
defined at src/library/FP/Server/Types.hs:115:6
or `Control.Monad.Logger.Loc',
imported from `Control.Monad.Logger' at src/library/FP/Server/Types.hs:18:1-27
(and originally defined in `Language.Haskell.TH.Syntax')

src/library/FP/Server/Types.hs:102:46:
Ambiguous occurrence `Loc'
It could refer to either `FP.Server.Types.Loc',
defined at src/library/FP/Server/Types.hs:115:6
or `Control.Monad.Logger.Loc',
imported from `Control.Monad.Logger' at src/library/FP/Server/Types.hs:18:1-27
(and originally defined in `Language.Haskell.TH.Syntax')

src/library/FP/Server/Types.hs:103:46:
Ambiguous occurrence `Loc'
It could refer to either `FP.Server.Types.Loc',
defined at src/library/FP/Server/Types.hs:115:6
or `Control.Monad.Logger.Loc',
imported from `Control.Monad.Logger' at src/library/FP/Server/Types.hs:18:1-27
(and originally defined in `Language.Haskell.TH.Syntax')

src/library/FP/Server/Types.hs:118:17:
Ambiguous occurrence `Loc'
It could refer to either `FP.Server.Types.Loc',
defined at src/library/FP/Server/Types.hs:115:6
or `Control.Monad.Logger.Loc',
imported from `Control.Monad.Logger' at src/library/FP/Server/Types.hs:18:1-27
(and originally defined in `Language.Haskell.TH.Syntax')

src/library/FP/Server/Types.hs:119:19:
Ambiguous occurrence `Loc'
It could refer to either `FP.Server.Types.Loc',
defined at src/library/FP/Server/Types.hs:115:6
or `Control.Monad.Logger.Loc',
imported from `Control.Monad.Logger' at src/library/FP/Server/Types.hs:18:1-27
(and originally defined in `Language.Haskell.TH.Syntax')
Failed to install fpco-api-1.0.5
cabal: Error: some packages failed to install:
fpco-api-1.0.5 failed during the building phase. The exception was:
ExitFailure 1

有人知道如何处理此错误吗?

似乎
monad logger
软件包开始导出
Loc
符号,该符号从版本
0.3.4.0
开始。此版本未被
fpco api
的阴谋集团文件排除

你可以试试

cabal install fpco-api --constraint="monad-logger < 0.3.4"
cabal安装fpco api--constraint=“monad logger<0.3.4”
强制使用较旧版本的
monad logger


有关错误的更多说明:

fpco-api
中的模块
FP.Server.Types
定义了整个包中使用的数据类型
Loc
。模块
Language.Haskell.TH.Syntax
定义了不同的数据类型
Loc
。此模块不是由
fpco-api
直接使用的,而是
fpco-api
使用
monad-logger
包,该包反过来使用
语言.Haskell.TH.语法
。这没有问题,只要在程序的任何一点上,两种不同的
Loc
类型都在范围内。但是在其最新版本中,
0.3.4.0
,monad logger包决定从
Language.Haskell.TH.Syntax
重新导出
Loc
数据类型。现在,在许多地方,记录器monad是在
fpco-api
中导入的,突然,这两种
Loc
类型都在范围内,GHC不知道本地出现的
Loc
指的是哪一种


此错误的正确修复方法是
fpco-api
隐藏从记录器monad重新导出的
Loc
,或者使用限定名称显式引用正确的。但这需要对fpco api进行源代码更新。使用较旧版本的monad logger的临时修复应该足够了。

谢谢您的回答。我会试试看结果。但我不太明白错误的原因:)@RottenBrain好的,我添加了更多细节:)