私は以下のコードからエラーあいまいなタイプの変数 `P0' を
Ambiguous type variable `p0' in the constraints:
(Show p0) arising from a use of `print' at cwqr_0003.hs:31:6-10
(Ord p0) arising from a use of `PSQ.lookup'
を取得します。
これを分析する方法はわかりません。これはGHCやモジュールの1つに問題がありますか? putStr
の代わりにprint
を試してみると、予想されるタイプに関連するエラーがp0ではなくむしろ文字列になります。私はfromMaybe
をしようとすると、それは私にエラーメッセージが実際にそれを言って正確に何を意味
import qualified Data.PSQueue as PSQ
import Data.Maybe
import Data.Label
import Control.Category
import Prelude hiding ((.))
--some tested code omitted here
let r = PSQ.lookup test' q
--putStr (show (r :: String))
print (r)
知ることは非常に興味深いのは、実際のだろう'test''と' q'の型は問題があるところにあると思われます。 – mrueg
test 'はタプルで、q a PSQ –
しかし何のタプル? (タプルのコンポーネントの型は何ですか?) 'PSQ.lookup'の結果が' Maybe p'型であるため、あなたのコメントアウトされた行は機能しませんが、結果は文字列でなければならないと言いますどちらも真実であることはできません。
さらに、 'PSQ'は半分の型です:' PSQ'のキーと値の型も型の一部です。 – mrueg