thunk じゃねー trunk だー。でもある意味正しいかも (笑)
Fiber も coroutine もよく知らないけれど、以下のコードで foo! が表示されるのは正しいのかな。
f1 = f2 = nil f1 = Fiber.new do f2.yield end f2 = Fiber.new do f1.yield # (A) puts "foo!" end f1.yield # (B)
f1 の Fiber が終わったら、直感的には (B) の直後に戻ってきて欲しい気がする。というか、f2 の Fiber は 1 回しか yield していないのに、(A) の yield の後になぜ走り出せるのだろう。継続とは違うってことかな。