Текущий модуль экспорта 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и экспортировать все, что определено в, Testбез необходимости явно писать каждую функцию, определенную внутри Test?

Войцех Данило
источник

Ответы:

139

Есть простое решение, просто экспортируйте модуль из модуля:

module Test
    ( module Test
    , module A
    ) where

import Prelude()
import A
f x = x
Томас М. ДюБюиссон
источник
Эксплуатируется здесь .
PyRulez
Кроме того, какое-либо понимание того, почему это работает? (Есть документация?)
PyRulez
1
@PyRulez Отчет Haskell является исчерпывающим
Thomas M. DuBuisson,