从当前工作目录

时间:2015-07-28 00:29:48

标签: haskell cabal

init.hs库模块有,

module init where
data Suite = Clubs | Diamonds | Hearts | Spades deriving (Eq,Ord,Enum,Show)

main.hs,入口模块有,

module Main where
import init
main = do
  print (fromEnum Clubs)

两个模块都在同一目录中,目录不是cabal路径的一部分。

在执行runhaskell main.hs时,它会将错误抛出为main.hs:2:8: parse error on input ‘init’

在不污染全局PATH / CABAL变量的情况下,在当前工作目录中导入模块的正确方法是什么?

1 个答案:

答案 0 :(得分:7)

不应该以大写字母开头的模块名称吗? 将init替换为Init

module Init where
data Suite = Clubs | Diamonds | Hearts | Spades deriving (Eq,Ord,Enum,Show)
module Main where
import Init
main = do
  print (fromEnum Clubs)

修改
ØrjanJohansen所述:

  

通常,文件应以模块名称命名,替换   目录分隔符在模块名称中的点。

Quote source

在您的情况下,应使用Init.hs