我对Haskell的库问题感到尴尬。 我完成了一个由几个文件组成的库
src/MyLib/Firstbib.hs
src/MyLib/Secondbib.hs
...
src/MyLib/Lastbib.hs
此时,在cabal install
之后我可以用
import MyLib.Firstbib
import MyLib.Secondbib
import MyLib.Lastbib
一切都很好
现在,我想通过一个简单的导入导入MyLib的所有这些部分:
import MyLib
我无法达成目标。
我尝试创建一个名为src/MyLib.hs
的文件,其中包含:
module MyLib where
import MyLib.Types
import MyLib.Functions
import MyLib.Algo.Line
import MyLib.Algo.Point
并用Cabal公开它
Library
-- Modules exported by the library.
Hs-Source-Dirs: src
Exposed-modules: MyLib
, MyLib.Functions
, MyLib.Types
, MyLib.Algo.Line
, MyLib.Algo.Point
但它不起作用。!
导入多个文件只有一个模块导入的正确方法是什么(例如Gtk2Hs)?
答案 0 :(得分:6)
这就是MyLib
的样子 - 可能有不同的缩进:
module MyLib
(module MyLib.Types
,module MyLib.Functions
,module MyLib.Algo.Line
,module MyLib.Algo.Point
) where
import MyLib.Types
import MyLib.Functions
import MyLib.Algo.Line
import MyLib.Algo.Point
当您在导出列表中放置这样的模块时,会导出您的模块所知道的所有符号。
您可以确定导出此模块的哪个部分,例如:
module ExampleLib
(module Data.Maybe
) where
import Data.Maybe (fromJust)
上述内容只会从fromJust
重新导出Data.Maybe
,而不是整个Data.Maybe
模块。