runhaskell - 如何使脚本与ghc 7.4和6兼容?

Pen*_*enz 5 haskell

升级到ghc 7.4之后,我不得不import System从各种脚本中删除,但这使得它们与GHC 6.0中的runhaskell不兼容,GHC 6.0仍在许多环境中使用.

有没有办法支持这两个版本?

import System在ghc 7.4中运行脚本时得到的消息:

% ./script.hs
    Could not find module `System'
    It is a member of the hidden package `haskell98-2.0.0.1'.
    Use -v to see a list of the files searched for.
Run Code Online (Sandbox Code Playgroud)

ehi*_*ird 6

System模块是一个不推荐使用的非分层Haskell 98模块; 你应该导入相关的分级模块(例如System.Environment,System.IOSystem.Exit;看到基础包的完整列表),你需要来代替.完成此操作的最简单方法可能是简单地删除System导入,并使用Hoogle从编译器错误中找出您需要的定义所在的模块.

在较旧的GHC中,Haskell 98模块可以与分层模块一起使用,但这已不再可能.更改导入应该相对容易,并且将使您的程序与最新的Haskell 2010标准保持同步.


ham*_*mar 5

System模块是一个老哈斯克尔-98兼容模块,它的所有功能,可以在发现System.Cmd,System.EnvironmentSystem.Exit模块,因为至少可以追溯到其已全部可用GHC 5.04,所以它应该是刚刚杀青的一个简单的事情你import语句改为使用这些模块的某些适当子集.