重新导出时的Haskell命名空间
我不确定名称空间在以下情况下如何工作: 从重新导出主机首选项 当我在ghci中加载时,我可以看到构造函数的前缀是原始名称空间重新导出时的Haskell命名空间,haskell,module,export,Haskell,Module,Export,我不确定名称空间在以下情况下如何工作: 从重新导出主机首选项 当我在ghci中加载时,我可以看到构造函数的前缀是原始名称空间 $ ghci GHCi, version 7.8.4: http://www.haskell.org/ghc/ :? for help Loading package ghc-prim ... linking ... done. Loading packa
$ 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’
发生了什么,谁是对的?没有导出
主机首选项的构造函数,流式公用程序
包打算让它们是私有的,如果我要根据导出的内容来判断的话。相反,文档建议使用重载字符串
并键入字符串文字来获得不同的值:
数据主机首选项
绑定哪个主机
注意:IsString
实例识别以下特殊值:
*
表示HostAny
*4
表示主机IPv4
!4
表示仅主机IPV4
*6
表示主机IPv6
!6
表示仅主机IPV6
任何其他值都被视为主机名。例如,要仅绑定到IPv4本地主机,请使用“127.0.0.1”
因此,在您的服务器.hs
中,只需启用重载字符串
,然后在尝试使用主机的任何地方键入“*”