メモ

Pythonでは、関数内でyieldを使うと、その関数が自動的にgenerator関数となりますが、Xtalはそうなっていません。
何故自分でfiberを返す記述が必要な仕様になっているのかというと、次のようなことを可能にするためです。

foo: fun(){
  return fiber{
    // 引数をpしてからyieldする関数
    // この関数がジェネレータ関数になっては困る
    my_yield: fun(a){
      a.p;
      yield a;
    }

    my_yield(0);
    my_yield(1);
    my_yield(2);
  }
}