1

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'
4

1 に答える 1

2

のドキュメントを見ると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

于 2014-05-09T15:25:49.807 に答える