2

値を作成しようとするとRequest、次のエラーが発生します。

ghci> :m +Network.HTTP Network.URI Data.Maybe
ghci> Request { rqURI = fromJust $ parseURI "http://www.google.com", rqMethod = GET, rqHeaders = [], rqBody = ""}

<interactive>:18:19:
    Couldn't match expected type `network-2.3.1.0:Network.URI.URI'
                with actual type `URI'
    In the `rqURI' field of a record
    In the expression:
      Request
        {rqURI = fromJust $ parseURI "http://www.google.com",
         rqMethod = GET, rqHeaders = [], rqBody = ""}
    In an equation for `it':
        it
          = Request
              {rqURI = fromJust $ parseURI "http://www.google.com",
               rqMethod = GET, rqHeaders = [], rqBody = ""}

cabal list networkは次のことを示しています。

* network
    Synopsis: Low-level networking interface
    Default available version: 2.4.0.1
    Installed versions: 2.3.1.0, 2.4.0.1
    Homepage: https://github.com/haskell/network
    License:  BSD3

Hackageのドキュメントから、私が作成しているURIはであると思いparseURIますNetwork.URI.URI

私はOSXMountainLionでHaskellPlatform2012.4.0.0(64ビット)を実行しています。

これは私が聞いた「陰謀団地獄」の例ですか?

4

1 に答える 1

3

HTTPパッケージはを使用してビルドされましたが、使用するバージョンが明示的に指定されていない限りnetwork-2.3.1.0、ghciはの最新バージョンをロードします。network

したがってparseURI、を返しますMaybe network-2.4.0.1:Network.URI.URIが、Requestはからの型を必要としnetwork-2.3.1.0ます。

あなたはできる

  • 使用する-packageバージョンを指定するフラグを指定してghciを呼び出します。network$ ghci -package network-2.3.1.0 other arguments
  • 再構築HTTPとそれに依存するすべてのものnetwork-2.4.0.1-その場合、推移的に依存するすべてのものを再構築する方がおそらく良いでしょうnetwork-2.3.1.0

これは私が聞いた「陰謀団地獄」の例ですか?

私はまだそれを「地獄」と呼ぶことはしませんが、それは確かにその小さな例です。

于 2012-12-16T14:31:11.657 に答える