試圖編譯我的哈斯克爾代碼曖昧接口
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
我該如何解決這個問題時,我收到以下錯誤。我不能使用隱藏,因爲它是整個界面不明確。
試圖編譯我的哈斯克爾代碼曖昧接口
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
我該如何解決這個問題時,我收到以下錯誤。我不能使用隱藏,因爲它是整個界面不明確。
使用the PackageImports
language extension,你可以有資格進口與特定的包:
{-# LANGUAGE PackageImports #-}
import "matrix" Data.Matrix
然而,隨着文件表明,它並不總是一個好主意。還有其他方法可以解決這個問題,包括renaming modules from particular packages using GHC flags。例如,你可以改變從matrix
Data.Matrix
到一個不同的名稱與以下GHC選項:
-package "matrix (Data.Matrix as Data.OtherMatrix)"
您可以選擇,最適合您根據具體情況和您需要的選項。
有一個更簡單的解決方案,我認爲值得一提:使用'.cabal'文件,並且不依賴於矩陣和矩陣。在單個應用程序/庫中確實需要這兩個軟件包似乎不太可能。 –
@DanielWagner我考慮過提及這一點,但我認爲OP需要兩個軟件包,所以這不是一個選項。不過,通常情況下,通常只有其中一個軟件包可見,從而解決了模糊問題。 –
導致此錯誤的代碼究竟是什麼?如果您沒有完全描述,我們無法解決您的問題。 – AJFarmar