haskell - 在 OPTIONS 杂注中设置导入路径

标签 haskell ghc pragma

根据GHC 8.4.3 flag reference , -i标志是动态的,这意味着 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 中的标志语用?

最佳答案

这似乎是文档错误 fixed 的回归。在 2007 年,然后在 2014 年重新打破,当时在标志引用表中将一堆“静态”更改为“动态”。根据链接的错误报告,-i标志不是完全动态的。可以是:set在 GHCi 中,但不能在 OPTIONS_GHC 中指定线。

关于haskell - 在 OPTIONS 杂注中设置导入路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51682304/

相关文章:

c++ - "pragma"这个词是怎么来的?

c - 当我尝试编译这个程序时,我在程序错误中遇到了 '#'

matlab - %#mex 杂注有什么作用?

haskell - 为什么这个 Haskell 类型的强制转换不能编译?

excel - 将 Haskell lib 导出为 DLL

java - 如何在 Java 中实现 Haskell 的 IO 类型?

haskell - 重叠模式匹配

haskell - GHC 无法在 GADT 和类型族存在的情况下推断类型

haskell - 在 Haskell 中生成相同元素的无限列表

haskell - Haskell 软实时的当前状态