Haskell中缺少数据构造函数HostAny



我正在尝试导管网络,我无法编译此代码,因为它找不到数据构造函数:HostAny

conduit-extra已经安装了,所以我很困惑为什么它找不到它?

{-# 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'

如果您查看conduit-extras的文档,您将看到

数据HostPreference

要绑定的主机。

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

* means HostAny
*4 means HostIPv4
!4 means HostIPv4Only
*6 means HostIPv6
!6 means HostIPv6Only 

这告诉我你应该使用扩展名OverloadedStrings然后你可以把你的代码写成

main = runTCPServer (serverSettings 8900 "*") serverApp

虽然我不得不说这个库选择了一个奇怪的API。我个人宁愿有能力使用IsString或显式构造函数的情况下,我不想使用OverloadedStrings无论出于何种原因。

相关内容

  • 没有找到相关文章

最新更新