使用 Haskell 一次导入整个模块

import a whole module at one time with Haskell

我对 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)?

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)

以上将仅从 Data.Maybe 重新导出 fromJust,而不是整个 Data.Maybe 模块。