2013-08-03 221 views
71

是否可以在Haskell中編寫模塊,該模塊除了導出所有可見以外還重新導出模塊?Haskell導出當前模塊與額外的導入模塊

讓我們考慮以下模塊:

module Test where 
import A 

f x = x 

該模塊出口一切定義裏面,所以出口f,但不會再出口任何東西從A進口。

在另一方面,如果我想重新導出模塊A

module Test (
    module A, 
    f 
) where 
import A 

f x = x 

有沒有辦法再出口A和出口一切Test定義,而無需顯式地寫出每函數定義在Test

回答

107

有一個簡單的解決方案,只需從模塊輸出模塊:

module Test 
    (module Test 
    , module A 
    ) where 

import Prelude() 
import A 
f x = x 
+1

+1所以,就這麼簡單! –

+0

已被利用[這裏](https://github.com/ndmitchell/tagsoup/commit/1f1fff1e9ce4bd3233a2ef9607287b5018b516a7#diff-430b750c0b6fd0e9461c82565a1345dcR8)。 – PyRulez

+0

此外,任何有關爲什麼這項工作的見解? (任何文檔?) – PyRulez