えっとIOがMonad型クラスのインスタンスである以上、
return :: a -> IO aが実装されていると思うのですが、IO aを作り出すデータコンストラクタ
がないので、どうやってreturnが定義されているのかわからないのです。