return "abc"
のタイプはghciで印刷されますか?印刷時に多型表現にどのような型が選択されますか?
質問のポイントは、それはモナドで多型であるということです。
ghci> :t return "abc"
return "abc" :: (Monad m) => m [Char]
とどのような印刷されますと、選択されたモナドに依存します。
ghci> return "abc" :: Maybe String
Just "abc"
ghci> return "abc" :: [] String
["abc"]
が、ここでは、実際に印刷したものです。
ghci> return "abc"
"abc"
IO。 ghciセッションは特別な巨大なIO Monadのようなものです! – is7s