依存関係の問題で問題が発生している可能性がありますが、完全にはわかりません。これが私の問題です。Data.Bsonライブラリを使用して、いくつかの(Text、Text)タプルをbsonフィールドに変換しています。この関数を定義すると、次のようになります。
typeMismatch :: (Text, Text) -> Field
typeMismatch tp = (fst tp) := (String (snd tp))
それは文句を言う:
Couldn't match expected type `Label' with actual type `Text'
Expected type: (Label, b0)
Actual type: (Text, Text)
Field
は基本的にBsonの単なるキー/値であり、キーはLabel
、の同義語として定義され、Text
値はValue
、String
その多くのコンストラクターの1つです(つまり、これはではありませんPrelude.String
)。次に、最初のテキストをラベルに変更してみます。
typeMismatch :: (Label, Text) -> Field
typeMismatch tp = (fst tp) := (String (snd tp))
したがって、ラベルは一致しますが、それは私が望むものではありませんが、調査するためにこれを行っているだけですが、それでも文句を言います。
Couldn't match expected type `text-0.11.2.0:Data.Text.Internal.Text'
with actual type `Text'
Expected type: (Label, text-0.11.2.0:Data.Text.Internal.Text)
Actual type: (Label, Text)
そして、いくつかの依存関係の問題またはモジュールのインポートの問題があるようです。しかし、ライブラリを確認したところ、bsonはtext-0.11.2.0を使用しており、data.textもtext-0.11.2.0であるため、すべてが一貫している必要があります。
この問題を解決するにはどうすればよいですか?前もって感謝します。
編集:解決しました。「-v」フラグを追加して、コンパイル時に依存関係を確認します。どういうわけか、どこかにテキスト-0.11.2.2が潜んでいます。ghc-pkgはそのパッケージの登録を解除し、コンパイルします。これから「haskell依存関係地獄」を回避する方法を学び始める必要があります。