Pertanyaan Modul ekspor Haskell saat ini dengan modul impor tambahan


Apakah mungkin untuk menulis modul di Haskell, yang mengekspor kembali modul selain mengekspor semuanya terlihat dalam?

Mari kita pertimbangkan modul berikut:

module Test where
import A

f x = x

Modul ini mengekspor segalanya didefinisikan di dalam, jadi ekspor f tetapi tidak mengekspor kembali apa pun yang diimpor dari A.

Di sisi lain, jika saya ingin mengekspor kembali modul A:

module Test (
    module A,
    f
) where
import A

f x = x

Apakah ada cara untuk mengekspor kembali A dan ekspor segala sesuatu didefinisikan dalam Test tanpa perlu secara eksplisit menulis setiap fungsi yang didefinisikan dalam Test?


75
2017-08-03 17:31


asal


Jawaban:


Ada solusi sederhana, cukup ekspor modul dari modul:

module Test
    ( module Test
    , module A
    ) where

import Prelude()
import A
f x = x

113
2017-08-03 17:57