1
我導入包Data.Map這樣的:import qualified Data.Map as M
,我與類型的變量:匹配2個Data.Map包版本
> :t particleMap
particleMap :: M.Map PID (Particle (Float, Float))
現在,我想我的變量particleMap
傳遞到與數據類型如下:
> :t Ensemble
Ensemble
:: [([Edge], Point v -> Point v -> v)]
-> containers-0.4.2.1:Data.Map.Map PID (Particle v) -> Ensemble v
請看看第二個參數。它是containers-0.4.2.1:Data.Map.Map PID (Particle v)
,不像Data.Map.Map
,或不像M.Map
。最後,它會導致這樣的錯誤:
Couldn't match expected type `containers-0.4.2.1:Data.Map.Map
PID (Particle (Float, Float))'
with actual type `M.Map PID (Particle (Float, Float))'
我仔細檢查包裝容器的版本,我發現我已經安裝了2個版本:
版本安裝:0.4.2.1,0.5。 1.0
所以,我想,計算機與2個版本混淆,這就是爲什麼會導致錯誤。是嗎?
是的,這就是導致錯誤的原因,你說得對。真正的問題是爲什麼GHC同時加載到不同版本的軟件包。如果你正確地[cabalise](http://www.haskell.org/cabal/users-guide/)你的項目,這應該不會發生。 – leftaroundabout
我想知道是否我們可以導入包裝容器的版本 - 0.4.2.1而不用cabal處理。例如,'導入合格的容器-0.4.2.1:Data.Map爲M' – chipbk10
我註銷了容器0.5.1.0的版本,非常幸運,沒有軟件包依賴性受到影響。編譯是好的。但任何其他建議都是值得歡迎的。謝謝 – chipbk10