Haskellは現在のモジュールを追加のインポートされたモジュールでエクスポートします


96

内部に表示されているすべてのものをエクスポートするだけでなく、モジュールを再エクスポートするモジュールをHaskellで作成することは可能ですか?

次のモジュールを考えてみましょう:

module Test where
import A

f x = x

このモジュールは内部で定義されたすべてのものをエクスポートするため、fからインポートされAたものはすべてエクスポートされますが、再エクスポートはされません。

一方、モジュールを再エクスポートする場合A

module Test (
    module A,
    f
) where
import A

f x = x

で定義されたすべての関数を明示的に記述する必要なしに、で定義されたすべてを再エクスポートAおよびエクスポートする方法はありますか?TestTest

回答:


139

単純な解決策があります。モジュールからモジュールをエクスポートするだけです。

module Test
    ( module Test
    , module A
    ) where

import Prelude()
import A
f x = x

搾取こちら
PyRulez

また、なぜこれが機能するのかについての洞察はありますか?(ドキュメントはありますか?)
PyRulez

1
@PyRulezザ・Haskellレポートが決定的なソースです:haskell.org/onlinereport/haskell2010/...
トーマス・M. DuBuisson
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.