2

Data.Binaryの使用方法を学び、ここで障害にぶつかろうとしています。

http://www.haskell.org/haskellwiki/Serialisation_and_compression_with_Data_Binary

D:\Projects\haskell\serialize\ex1.hs:114:26:
    Couldn't match expected type `bytestring-0.9.1.10:Data.ByteString.Lazy.Internal.ByteString'
                with actual type `L.ByteString'
    Expected type: Int
                   -> bytestring-0.9.1.10:Data.ByteString.Lazy.Internal.ByteString
      Actual type: Int -> L.ByteString
    In the return type of a call of `toByteString'
    In the second argument of `(.)', namely `toByteString f'

D:\Projects\haskell\serialize\ex1.hs:122:21:
    Couldn't match expected type `L.ByteString'
                with actual type `bytestring-0.9.1.10:Data.ByteString.Lazy.Internal.ByteString'
    In the first argument of `L.length', namely `fs'
    In the first argument of `(+)', namely `L.length fs'
    In the first argument of `(==)', namely `L.length fs + L.length is'
[Finished]
4

1 に答える 1

7

Cabalパッケージが混乱しているようです。bytestringパッケージの複数のバージョンがインストールされていて、それらが競合しています。最も可能性の高いシナリオは、パッケージが、インポート時に取得するbinaryバージョンとは異なるバージョンに依存していることです。bytestringData.ByteString.Lazy

最も簡単な方法は、おそらく最初からCabalディレクトリをクリアすることです。Windowsでは、これらのディレクトリはとのように見えC:\Program Files\Haskellます。ただし、前者を無差別にクリアすると、Haskellプラットフォームが完全にアンインストールされると思いますので、注意してください。一方、最も簡単な方法は、Haskellプラットフォームをアンインストールしてやり直すことです。(さらに、 Cabal構成が上書きされないように、最初にファイルをコピーすることをお勧めします。)C:\Documents And Settings\username\Application Data\cabalconfig

cabal-devこのような問題を切り分けておくのに役立ちます。各プログラムを独自のサンドボックスに構築するため、パッケージの問題の影響がローカライズされ、簡単にクリーンアップできます。ただし、Windowsでどれだけうまく機能するかはわかりません。

于 2012-04-14T02:20:05.603 に答える