根据GHC 8.4.3 flag reference,-i
标志是 dynamic ,表示it should be settable by an OPTIONS
pragma。
所以我尝试了以下操作:
.
├── Main.hs
└── imp
└── Imported.hs
imp/Imported.hs
的内容:
module Imported (foo) where
foo :: String
foo = "Foo"
Main.hs
的内容:
{-# OPTIONS_GHC -iimp #-}
import Imported (foo)
main :: IO ()
main = putStrLn foo
但是,如果我尝试使用Main.hs
运行runhaskell
,它将抱怨找不到Imported
:
$ runhaskell -v Main.hs
...
Main.hs:2:1: error:
Could not find module ‘Imported’
Locations searched:
Imported.hs
Imported.lhs
Imported.hsig
Imported.lhsig
如何在-i
编译指示中指定OPTIONS
标志?
答案 0 :(得分:2)
这似乎是文档错误的回归,该错误在2007年为fixed,然后在2014年再次中断,当时在标记参考表中将一堆“静态”更改为“动态”。根据链接的错误报告,-i
标志不是完全动态的。在GHCi中可以为:set
,但不能在OPTIONS_GHC
行中指定。