Я хочу написать модуль, который реэкспортирует некоторый модуль, который он импортировал. Что-то вроде этого:GHC отказывается экспортировать квалифицированные модули
module Foo.A
(module Foo.B
, module Foo.C
) where
import qualified Foo.B
import qualified Foo.C
-- bunch of code using Foo.B and Foo.C here
Похоже, что это должно сработать; однако GHC печатает предупреждения об экспорте:
Foo/A.hs:2:5:
Warning: the export item `module Foo.B' exports nothing
Foo/A.hs:3:5:
Warning: the export item `module Foo.C' exports nothing
И GHCI отказывается загружать экспорт из них.
Я могу решить эту проблему, сделав импорт неквалифицированным, но могут возникнуть конфликты имен между этими импортами и основным кодом модуля.
Есть ли способ сделать GHC экспорт этих модулей?
Но можно переэкспортировать квалифицированные символы; например, 'import qualified Foo.B' позволит мне сделать модуль Foo.A (Foo.B.sym)'. Почему это невозможно с модулями? Я не экспортирую два символа с тем же именем; что-либо противоречивое является внутренним для модуля. –