Haskell 模糊接口
我在编译Haskel代码时遇到以下错误Haskell 模糊接口,haskell,functional-programming,Haskell,Functional Programming,我在编译Haskel代码时遇到以下错误 Main.hs:11:1: error: Ambiguous interface for ‘Data.Matrix’: it was found in multiple packages: matrices-0.4.4 matrix-0.3.5.0 我该如何解决这个问题。我不能使用hide,因为它是一个完整的界面。使用hide,您可以使用特定的包限定导入: {-# LANGUAGE PackageImports #-} import
Main.hs:11:1: error:
Ambiguous interface for ‘Data.Matrix’:
it was found in multiple packages: matrices-0.4.4 matrix-0.3.5.0
我该如何解决这个问题。我不能使用hide,因为它是一个完整的界面。使用hide,您可以使用特定的包限定导入:
{-# LANGUAGE PackageImports #-}
import "matrix" Data.Matrix
然而,正如文档所示,这并不总是一个好主意。还有其他方法可以解决这个问题,包括。例如,您可以使用以下GHC选项将Data.Matrix
从Matrix
更改为其他名称:
-package "matrix (Data.Matrix as Data.OtherMatrix)"
根据具体情况和您的需要,您可以选择最适合您的选项。使用,您可以使用特定的软件包对导入进行鉴定:
{-# LANGUAGE PackageImports #-}
import "matrix" Data.Matrix
然而,正如文档所示,这并不总是一个好主意。还有其他方法可以解决这个问题,包括。例如,您可以使用以下GHC选项将Data.Matrix
从Matrix
更改为其他名称:
-package "matrix (Data.Matrix as Data.OtherMatrix)"
您可以根据具体情况和需要选择最适合自己的选项。导致此错误的代码到底是什么?如果您不完整描述您的问题,我们将无法解决。到底是什么代码导致了此错误?如果您不详细描述,我们就无法解决您的问题。我认为有一个更简单的解决方案值得一提:使用
.cabal
文件,不要同时依赖矩阵和矩阵。似乎不太可能在单个应用程序/库中真正需要这两个包。@DanielWagner我考虑过提到这一点,但我认为OP需要这两个包,所以这不是一个选项。不过,一般来说,是的,通常只有一个包是可见的,解决了歧义。有一个更简单的解决方案,我认为值得一提:使用.cabal
文件,不要同时依赖矩阵和矩阵。似乎不太可能在单个应用程序/库中真正需要这两个包。@DanielWagner我考虑过提到这一点,但我认为OP需要这两个包,所以这不是一个选项。但是,一般来说,是的,通常只有一个包是可见的,从而解决了歧义。