Haskell中缺少数据构造函数HostAny
我正在试验导管网络,我无法编译此代码,因为它找不到数据构造函数:HostAny 安装了额外的导管,所以我很困惑为什么它找不到它Haskell中缺少数据构造函数HostAny,haskell,conduit,network-conduit,Haskell,Conduit,Network Conduit,我正在试验导管网络,我无法编译此代码,因为它找不到数据构造函数:HostAny 安装了额外的导管,所以我很困惑为什么它找不到它 {-# LANGUAGE ScopedTypeVariables #-} import Data.Conduit import Data.Conduit.Network serverApp :: AppData -> IO () serverApp d = do appSource d $$ appSink d main :: IO() main = run
{-# 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'
如果查看导管附加组件
,您将看到
数据主机首选项
绑定哪个主机
注意:IsString实例识别以下特殊值:
* means HostAny
*4 means HostIPv4
!4 means HostIPv4Only
*6 means HostIPv6
!6 means HostIPv6Only
这告诉我您应该使用扩展名OverloadedStrings
,然后您可以将代码编写为
main = runTCPServer (serverSettings 8900 "*") serverApp
尽管我不得不说这是这个库选择的一个奇怪的API。我个人更希望能够使用IsString
或显式构造函数,以防出于任何原因而使用OverloadedStrings