Haskell 阴谋集团安装fpco api错误
最近,我试图通过cabal安装在OS X 10.9上安装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 ..
... 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好的,我添加了更多细节:)