HaskellのIOモナドのより深い働きを彼らの ウィキで読んでいて、このコードに出くわしました
main = do a <- ask "What is your name?"
b <- ask "How old are you?"
return ()
ask s = do putStr s
readLn
それは私には理にかなっています。ask関数は、与えられた文字列を出力し、aまたはbに渡すことができる行を返す必要があります。
しかし、これをGHCiにロードすると、問題が発生します。askの使用によるReadのインスタンスがなく、GHC.Readをインポートできることを通知します。それは必要ないはずです。このコードはHaskell.orgにあったので、うまくいくはずだと思います。言語の何かが変更されましたか、それとも私が見逃している大きな理解がありますか?