web-dev-qa-db-fra.com

Module actuel d'exportation Haskell avec module supplémentaire importé

Est-il possible d'écrire un module dans Haskell, qui réexporte un module en plus d'exporter tout visible à l'intérieur?

Considérons le module suivant:

module Test where
import A

f x = x

Ce module exporte tout défini à l'intérieur, il exporte donc f mais ne réexporte rien importé de A.

Par contre, si je veux réexporter le module A:

module Test (
    module A,
    f
) where
import A

f x = x

Existe-t-il un moyen de réexporter A et d'exporter tout défini dans Test sans avoir besoin d'écrire explicitement toutes les fonctions définies dans Test?

83
Wojciech Danilo

Il existe une solution simple, il suffit d'exporter le module depuis le module:

module Test
    ( module Test
    , module A
    ) where

import Prelude()
import A
f x = x
124