Haskell のエラー メッセージを理解するのに少し問題があります。
例えば:
import qualified Data.Map as M
test = M.empty
このコードは、エラー メッセージを表示せずに正常に実行されます。
出力は次のようになります。
*Main> test
fromList []
しかし、私がそのようなことをしようとすると
import qualified Data.Map as M
test = do print M.empty
このようなエラーメッセージが表示されます
Ambiguous type variable `k0' in the constraint:
(Show k0) arising from a use of `print'
Probable fix: add a type signature that fixes these type variable(s)
In a stmt of a 'do' block: print M.empty
In the expression: do { print M.empty }
In an equation for `test': test = do { print M.empty }
したがって、printステートメントと関係があると思います。
しかし、コンソール(ghci)で試してみると
Prelude Data.Map> print empty
fromList []
すべて正常に動作します。
だから私は誰かが問題がどこにあるのか私に説明してくれることを願っています.
前もって感謝します。