Módulo atual de exportação Haskell com módulo importado adicional

96

É possível escrever um módulo em Haskell, que reexporta um módulo além de exportar tudo o que está visível dentro dele?

Vamos considerar o seguinte módulo:

module Test where
import A

f x = x

Este módulo exporta tudo o que está definido dentro, então ele exporta, fmas não reexporta nada importado de A.

Por outro lado, se eu quiser reexportar o módulo A:

module Test (
    module A,
    f
) where
import A

f x = x

Existe uma maneira de reexportar Ae exportar tudo definido em Testsem precisar escrever explicitamente todas as funções definidas em Test?

Wojciech Danilo
fonte

Respostas:

139

Existe uma solução simples, basta exportar o módulo do módulo:

module Test
    ( module Test
    , module A
    ) where

import Prelude()
import A
f x = x
Thomas M. DuBuisson
fonte
Explorado aqui .
PyRulez
Além disso, alguma ideia de por que isso funciona? (Alguma documentação?)
PyRulez
1
@PyRulez O Relatório Haskell é a fonte definitiva: haskell.org/onlinereport/haskell2010/…
Thomas M. DuBuisson