db, eb, fb)
  {
    return S(db, eb, P(fb));
  });
  S = (function (db, eb, fb)
  {
    var gb = {contents: 0};
    var hb = {contents: eb};
    while (fb.MoveNext())
    {
      hb.contents = db(gb.contents)(hb.contents)(fb.get_Current());
      null;
      gb.contents = (gb.contents + 1);
      null;
    };
    return hb.contents;
  });
  T = (function (db)
  {
    var eb;
    eb = (new t(db));
    return {GetEnumerator: (function (fb)
    {
      return (function (gb, fb)
      {
        var hb;
        