Módulo actual de exportación Haskell con módulo adicional importado

96

¿Es posible escribir un módulo en Haskell, que reexporta un módulo además de exportar todo lo visible en su interior?

Consideremos el siguiente módulo:

module Test where
import A

f x = x

Este módulo exporta todo lo definido en el interior, por lo que exporta fpero no reexporta nada importado A.

Por otro lado, si quiero volver a exportar el módulo A:

module Test (
    module A,
    f
) where
import A

f x = x

¿Hay alguna manera de reexportar Ay exportar todo lo definido en Testsin necesidad de escribir explícitamente cada función definida dentro Test?

Wojciech Danilo
fuente

Respuestas:

139

Hay una solución simple, simplemente exporta el módulo desde el módulo:

module Test
    ( module Test
    , module A
    ) where

import Prelude()
import A
f x = x
Thomas M. DuBuisson
fuente
Explotado aquí .
PyRulez
Además, ¿alguna idea de por qué funciona esto? (¿Alguna documentación?)
PyRulez
1
@PyRulez El informe Haskell es la fuente definitiva: haskell.org/onlinereport/haskell2010/…
Thomas M. DuBuisson