Haskell中缺少数据构造函数HostAny

时间:2014-05-09 15:20:28

标签: haskell conduit network-conduit

我正在尝试使用Conduit Network而我无法编译此代码,因为它无法找到数据构造函数:HostAny

管道 - 额外安装,所以我很困惑,为什么它找不到它?

{-# LANGUAGE ScopedTypeVariables #-}
import Data.Conduit
import Data.Conduit.Network


serverApp :: AppData -> IO ()
serverApp d = do appSource d $$ appSink d

main :: IO()
main = runTCPServer (serverSettings 8900 HostAny) serverApp

这是GHC错误:

pez @ devbox:〜/ dev $ runhaskell server.hs

server.hs:10:42: Not in scope: data constructor `HostAny'

1 个答案:

答案 0 :(得分:2)

如果您查看conduit-extras * means HostAny *4 means HostIPv4 !4 means HostIPv4Only *6 means HostIPv6 !6 means HostIPv6Only ,您会看到

  

数据HostPreference

     

要绑定的主机。

     

注意:IsString实例识别以下特殊值:

OverloadedStrings

告诉我你应该使用扩展程序main = runTCPServer (serverSettings 8900 "*") serverApp ,然后你就可以编写代码

IsString

虽然我不得不说这是一个奇怪的API,但这个库已经选择了。在我不想因任何原因使用OverloadedStrings的情况下,我个人更愿意使用{{1}}或显式构造函数。