Текущий модуль экспорта 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,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.