100: iotest.hs で期待された出力がでない

↑up

概要

以下のプログラムにおいて、コンパイルはできるが実行してもなにも表示されない。

f :: IO [Char]
f = return "foo"

main = do
  s <- f
  putStrLn s

調査ログ

2020-06-05 (Fri)

Prim.returnIO では、Prim.IO a のように戻り値を ConObj でくるんでいたのに、 Prim.bindIO で、くるんでいるのを剥がさずにつぎの関数にわたしていた。

Prim.bindIO ではがしてもいいが、そもそもくるむ意味がないので、そちらをやめた。

この変更で期待通り出力されるようになった。