如何从导入的模块导出函数?

时间:2017-12-19 12:04:55

标签: haskell module

module Hart
  ( module Hart
  )
 where

import Control.Monad.Trans.Reader (runReaderT, ReaderT, ask)
import Control.Monad.Trans (lift)

我目前已经定义了上述内容。除了ask模块之外,如何从Control.Monad.Trans.Reader导出 Hart函数?

我以为我可以执行以下操作 - 但它会产生错误:

module Hart
  ( module Hart
  , module Control.Monad.Trans.Reader (ask)
  ) where

1 个答案:

答案 0 :(得分:1)

如注释中提到的@leftaroundabout,要重新导出功能,只需在导出列表中包含该功能:

module Hart 
  ( module Hart
  , ask 
  ) where 
...
import Control.Monad.Trans.Reader (ask)

这也适用于合格的导入,但需要注意导出中未捕获命名空间。

module Hart 
  ( module Hart
  , ask 
  , T.null
  ) where 
...
import Control.Monad.Trans.Reader (ask)
import qualified Data.Text as T

在其他文件中:

  module Other where 

  import Hart (ask, null)