Haskell exportiert aktuelles Modul mit zusätzlichem importiertem Modul

93

Ist es möglich, ein Modul in Haskell zu schreiben, das ein Modul erneut exportiert und alles, was darin sichtbar ist , exportiert ?

Betrachten wir folgendes Modul:

module Test where
import A

f x = x

Dieses Modul exportiert alles , was darin definiert ist, also exportiert es f, importiert jedoch nichts, von dem es importiert wurde A.

Auf der anderen Seite, wenn ich das Modul erneut exportieren möchte A:

module Test (
    module A,
    f
) where
import A

f x = x

Gibt es eine Möglichkeit, alles , was in definiert ist, erneut zu exportieren Aund zu exportieren , ohne jede darin definierte Funktion explizit schreiben zu müssen ?TestTest

Wojciech Danilo
quelle

Antworten:

134

Es gibt eine einfache Lösung, exportieren Sie einfach das Modul aus dem Modul:

module Test
    ( module Test
    , module A
    ) where

import Prelude()
import A
f x = x
Thomas M. DuBuisson
quelle
Exploited hier .
PyRulez
Gibt es auch einen Einblick, warum dies funktioniert? (Irgendwelche Unterlagen?)
PyRulez
1
@ PyRulez Der Haskell-Bericht ist die endgültige Quelle: haskell.org/onlinereport/haskell2010/…
Thomas M. DuBuisson