的時候我不知道該命名空間在以下情況下是如何工作的:哈斯克爾命名空間reexporting
Data.Streaming.Network轉口貿易寄主偏愛從Data.Streaming.Network.Internal
當我在ghci中加載了,我可以看到,構造函數是由前綴原始名稱空間。
$ ghci
GHCi, version 7.8.4: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Prelude> import Data.Streaming.Network
Prelude Data.Streaming.Network> :info HostPreference
data HostPreference
= Data.Streaming.Network.Internal.HostAny
| Data.Streaming.Network.Internal.HostIPv4
| Data.Streaming.Network.Internal.HostIPv4Only
| Data.Streaming.Network.Internal.HostIPv6
| Data.Streaming.Network.Internal.HostIPv6Only
| Data.Streaming.Network.Internal.Host String
-- Defined in ‘Data.Streaming.Network.Internal’
但是有些程序希望綁定的構造函數在重新導出模塊Data.Streaming.Network下可用。
Prelude Data.Streaming.Network> :l src/Server.hs
[1 of 1] Compiling Main (src/Server.hs, interpreted)
src/Server.hs:14:58: Not in scope: data constructor ‘HostAny’
這是怎麼回事,誰是正確的?
非常有用,這裏有很多實用主題。謝謝 – nicolas