W raporcie języka Haskell wywozu moduł jest opisany jako:
postaci „moduł M” nazwy zbioru wszystkich podmiotów, które są w zakresie zarówno z bezwarunkowe nazwą „e” i kwalifikowana nazwa „Mnie ". Ten zestaw może być pusty.
§5.2 Export Listy
lista eksport identyfikuje podmioty mają być wywożone na podstawie deklaracji modułu. Implementacja modułu może eksportować tylko jednostkę, którą deklaruje lub importuje z innego modułu. Jeśli lista eksportu zostanie pominięta, wszystkie wartości, typy i klasy zdefiniowane w module zostaną wyeksportowane, ale nie te, które zostaną zaimportowane.
Podmioty liście eksportowej może być nazwany w następujący sposób:
Oznacza to, że z semantycznego:
module Import
(module Import
) where
import Prelude as Import
import Yesod as Import
-- ...
jest wziąć wszystko, co jest zawarte w Prelude
i Yesod
modułów i wyeksportować go.
Co proponujesz zamiast:
module Import where
nie eksportować co importowany przez Prelude
i Yesod
, zgodnie cytat powyżej:
Jeśli lista eksport zostanie pominięty, wszystkie wartości, rodzajów i klas zdefiniowane w module są eksportowane, , ale nie te, które są importowane.