我在Haskell中尝试Diagrams模块。但我无法获得ghc来编译以下代码
{-# LANGUAGE NoMonomorphismRestriction #-}
import Diagrams.Prelude
import Diagrams.Backend.SVG.CmdLine
main = mainWith (example :: Diagram B R2)
example = circle 1 # fc blue
# lw veryThick
# lc purple
问题是,veryThick不在范围内。虽然文档here表示它在Diagrams.TwoD.Attributes中,但它并不存在。 veryThick定义在哪里,为什么文档中存在不一致?
编辑:
我添加了
import Diagrams.TwoD.Attributes
我收到此错误。
DiagramsTutorial.hs:5:8:
Could not find module `Diagrams.TwoD.Attributes'
Perhaps you meant Diagrams.Attributes (from diagrams-lib-1.1.0.7)
Use -v to see a list of the files searched for.
答案 0 :(得分:4)
您似乎安装了Diagrams版本1.1.0.7。请确保您正在阅读您使用的版本的haddocks,而不是最新版本。如果要使用模块Diagrams.TwoD.Attribuites
,请卸载当前版本并安装1.2.0.1版。否则,您将不得使用veryThick
函数作为版本1.1.0.7 doesn't include such a function。
编辑:粗略地说,重新安装过程应该包括取消注册旧库(可选但强烈建议)并安装新库:
ghc-pkg unregister diagrams-core --force
ghc-pkg unregister diagrams-lib
ghc-pkg unregister diagrams-svg
ghc-pkg unregister diagrams-contrib
ghc-pkg unregister diagrams
ghc-pkg list | grep diagrams
# ^^^ should not list any packages! Unregister any remaining packages
cabal update
cabal install diagrams-lib-1.2.0.1
cabal install diagrams-svg