使用Haskell一次导入整个模块

Jea*_*ouX 2 haskell cabal

我对Haskell的库问题感到尴尬.我完成了一个由几个文件组成的库

src/MyLib/Firstbib.hs
src/MyLib/Secondbib.hs
...
src/MyLib/Lastbib.hs
Run Code Online (Sandbox Code Playgroud)

这时,cabal install我可以分别导入每个文件

import MyLib.Firstbib
import MyLib.Secondbib
import MyLib.Lastbib
Run Code Online (Sandbox Code Playgroud)

一切都好

现在,我想在一个简单的导入中导入MyLib的所有这些部分:

import MyLib
Run Code Online (Sandbox Code Playgroud)

我无法达到它.

我试图创建一个名为src/MyLib.hscontains 的文件:

module MyLib where 
import MyLib.Types 
import MyLib.Functions
import MyLib.Algo.Line 
import MyLib.Algo.Point  
Run Code Online (Sandbox Code Playgroud)

并用Cabal暴露它

Library
  -- Modules exported by the library.
  Hs-Source-Dirs:     src
  Exposed-modules:      MyLib
                      , MyLib.Functions
                      , MyLib.Types
                      , MyLib.Algo.Line
                      , MyLib.Algo.Point
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

仅使用一个模块导入导入许多文件的正确方法是什么(例如Gtk2Hs)?

Mas*_*tic 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  
Run Code Online (Sandbox Code Playgroud)

什么情况是,当你把这样的一个模块中的导出列表中,您导出所有符号模块也知道.

您可以扩展导出此模块的哪个部分,例如:

module ExampleLib
  (module Data.Maybe
  ) where 
import Data.Maybe (fromJust)
Run Code Online (Sandbox Code Playgroud)

上述只会再出口fromJustData.Maybe,而不是整个Data.Maybe模块.