非常不在范围内

时间:2014-07-04 05:23:04

标签: haskell

我在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.

1 个答案:

答案 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