Haskell - 模块内模块

Haskell - module inside module

我有这样一个模块:

module Model where

import FlowType
  .
  . 
  .

我在 Model 的正文中使用 FlowType,但我也想与模型的函数 FlowType 一起导出。我找到了一个具有以下语法的模块:

module Import
  ( module Import
  ) where

import Foundation as Import
  .
  . 
  .

这是什么module Import ( module Import) where??? 我怎样才能在我的 Model 模块中做同样的事情(并导出它自己的函数)?

假设模块 Foundation 导出名称 foobar.

首先,import Foundation as Import 使这些名称在当前定义的模块中可用为 Import.fooImport.bar

module 语句然后也导出这些名称。而不是必须写

module Import (foo, bar) where

您可以使用问题中的语法导出通过名称 Import 可访问的所有内容。该示例有点混乱,因为它使用 Import 作为 Foundation 的内部名称和当前模块的名称。写成

会更明显
module Import (module Foundation) where

import Foundation
  .
  .
  .

在你的情况下,你会写

module Model (module FlowType) where
import FlowType

从您的模块导出从 FlowType 导入的所有内容。