Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
重新导出时的Haskell命名空间_Haskell_Module_Export - Fatal编程技术网

重新导出时的Haskell命名空间

重新导出时的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                                                          
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
中,只需启用
重载字符串
,然后在尝试使用
主机的任何地方键入
“*”