4

Is there some way (flag or hack) to make GHC accept a main module where the main function's signature isn't IO ()? For Fay the main functions have the type Fay (), but GHC does not accept this if the module is Main (or the module name is left out).

4

1 回答 1

10

程序的入口点必须有IO asome类型a,据我所知,没有办法让 GHC 接受其他类型(不修改其源代码)。

默认情况下,入口点是,但您可以使用带有 GHC 的标志Main.main指定不同的操作作为入口点。-main-is一般形式是

ghc -main-is Module.action ModuleThatImportsEverything.hs -o programme

如果模块是,您可以省略该Module部分Main

ghc -main-is action ModuleThatImportsEverything.hs -o programme

action零件,如果其名称为main

ghc -main-is Module ModuleThatImportsEverything.hs -o programme

相当于-main-is Module.main

对于您的情况,您可以将虚拟操作添加到Main模块或虚拟模块 - 当然需要从Main模块(直接或间接)导入 - 到程序中作为入口点,就 GHC 而言担心的。

于 2012-11-19T19:37:55.307 回答