根据GHC 8.4.3标志引用,-i
标志是动态,这意味着它应该可以由OPTIONS
杂注设置。
所以我尝试了以下方法:
.
├── 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
但是,如果我尝试使用runhaskell
运行Main.hs
,它会抱怨找不到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
如何在OPTIONS
杂注中指定-i
标志?
这似乎是一个文档错误的回归,该错误在2007年被修复,然后在2014年当标志引用表中的一堆"静态"更改为"动态"时被重新打破。根据链接的错误报告,-i
标志不是完全动态的。它可以是GHCi中的:set
,但不能在OPTIONS_GHC
行中指定。