return gb.factory(hb);
      })(eb, fb);
    })};
  });
  U = (function (db)
  {
    var eb;
    var fb = (function (gb)
    {
      if ((gb.Tag == 1.000000)) 
      {
        var hb = G(gb);
        var ib = D(gb);
        return {Tag: 1.000000, Value: (new Z(ib, hb))};
      }
      else
      {
        return {Tag: 0.000000};
      };
    });
    eb = (function (gb)
    {
      return X(fb, gb);
    });
    return eb(db);
  });
  V = (function (db, eb)
  {
    return T((function (fb)
    {
      var gb =