let rec meta_binding _loc =
                          function
                          | Ast.BiAnt (x0, x1) -> Ast.PaAnt (x0, x1)
                          | Ast.BiEq (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "BiEq")))))),
                                      (meta_loc _loc x0))),
                                   (meta_patt _loc x1))),
                                (meta_expr _loc x2))
                          | Ast.BiAnd (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "BiAnd")))))),
                                      (meta_loc _loc x0))),
                                   (meta_binding _loc x1))),
                                (meta_binding _loc x2))
                          | Ast.BiNil x0 ->
                              Ast.PaApp (_loc,
                                (Ast.PaId (_loc,
                                   (Ast.IdAcc (_loc,
                                      (Ast.IdUid (_loc, "Ast")),
                                      (Ast.IdUid (_loc, "BiNil")))))),
                                (meta_loc _loc x0))
                        and meta_class_expr _loc =
                          function
                          | Ast.CeAnt (x0, x1) -> Ast.PaAnt (x0, x1)
                          | Ast.CeEq (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "CeEq")))))),
                                      (meta_loc _loc x0))),
                                   (meta_class_expr _loc x1))),
                                (meta_class_expr _loc x2))
                          | Ast.CeAnd (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "CeAnd")))))),
                                      (meta_loc _loc x0))),
                                   (meta_class_expr _loc x1))),
                                (meta_class_expr _loc x2))
                          | Ast.CeTyc (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "CeTyc")))))),
                                      (meta_loc _loc x0))),
                                   (meta_class_expr _loc x1))),
                                (meta_class_type _loc x2))
                          | Ast.CeStr (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "CeStr")))))),
                                      (meta_loc _loc x0))),
                                   (meta_patt _loc x1))),
                                (meta_class_str_item _loc x2))
                          | Ast.CeLet (x0, x1, x2, x3) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaApp (_loc,
                                         (Ast.PaId (_loc,
                                            (Ast.IdAcc (_loc,
                                               (Ast.IdUid (_loc, "Ast")),
                                               (Ast.IdUid (_loc, "CeLet")))))),
                                         (meta_loc _loc x0))),
                                      (meta_rec_flag _loc x1))),
                                   (meta_binding _loc x2))),
                                (meta_class_expr _loc x3))
                          | Ast.CeFun (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "CeFun")))))),
                                      (meta_loc _loc x0))),
                                   (meta_patt _loc x1))),
                                (meta_class_expr _loc x2))
                          | Ast.CeCon (x0, x1, x2, x3) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaApp (_loc,
                                         (Ast.PaId (_loc,
                                            (Ast.IdAcc (_loc,
                                               (Ast.IdUid (_loc, "Ast")),
                                               (Ast.IdUid (_loc, "CeCon")))))),
                                         (meta_loc _loc x0))),
                                      (meta_virtual_flag _loc x1))),
                                   (meta_ident _loc x2))),
                                (meta_ctyp _loc x3))
                          | Ast.CeApp (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "CeApp")))))),
                                      (meta_loc _loc x0))),
                                   (meta_class_expr _loc x1))),
                                (meta_expr _loc x2))
                          | Ast.CeNil x0 ->
                              Ast.PaApp (_loc,
                                (Ast.PaId (_loc,
                                   (Ast.IdAcc (_loc,
                                      (Ast.IdUid (_loc, "Ast")),
                                      (Ast.IdUid (_loc, "CeNil")))))),
                                (meta_loc _loc x0))
                        and meta_class_sig_item _loc =
                          function
                          | Ast.CgAnt (x0, x1) -> Ast.PaAnt (x0, x1)
                          | Ast.CgVir (x0, x1, x2, x3) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaApp (_loc,
                                         (Ast.PaId (_loc,
                                            (Ast.IdAcc (_loc,
                                               (Ast.IdUid (_loc, "Ast")),
                                               (Ast.IdUid (_loc, "CgVir")))))),
                                         (meta_loc _loc x0))),
                                      (meta_string _loc x1))),
                                   (meta_private_flag _loc x2))),
                                (meta_ctyp _loc x3))
                          | Ast.CgVal (x0, x1, x2, x3, x4) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaApp (_loc,
                                         (Ast.PaApp (_loc,
                                            (Ast.PaId (_loc,
                                               (Ast.IdAcc (_loc,
                                                  (Ast.IdUid (_loc, "Ast")),
                                                  (Ast.IdUid (_loc, "CgVal")))))),
                                            (meta_loc _loc x0))),
                                         (meta_string _loc x1))),
                                      (meta_mutable_flag _loc x2))),
                                   (meta_virtual_flag _loc x3))),
                                (meta_ctyp _loc x4))
                          | Ast.CgMth (x0, x1, x2, x3) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaApp (_loc,
                                         (Ast.PaId (_loc,
                                            (Ast.IdAcc (_loc,
                                               (Ast.IdUid (_loc, "Ast")),
                                               (Ast.IdUid (_loc, "CgMth")))))),
                                         (meta_loc _loc x0))),
                                      (meta_string _loc x1))),
                                   (meta_private_flag _loc x2))),
                                (meta_ctyp _loc x3))
                          | Ast.CgInh (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "CgInh")))))),
                                   (meta_loc _loc x0))),
                                (meta_class_type _loc x1))
                          | Ast.CgSem (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "CgSem")))))),
                                      (meta_loc _loc x0))),
                                   (meta_class_sig_item _loc x1))),
                                (meta_class_sig_item _loc x2))
                          | Ast.CgCtr (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "CgCtr")))))),
                                      (meta_loc _loc x0))),
                                   (meta_ctyp _loc x1))),
                                (meta_ctyp _loc x2))
                          | Ast.CgNil x0 ->
                              Ast.PaApp (_loc,
                                (Ast.PaId (_loc,
                                   (Ast.IdAcc (_loc,
                                      (Ast.IdUid (_loc, "Ast")),
                                      (Ast.IdUid (_loc, "CgNil")))))),
                                (meta_loc _loc x0))
                        and meta_class_str_item _loc =
                          function
                          | Ast.CrAnt (x0, x1) -> Ast.PaAnt (x0, x1)
                          | Ast.CrVvr (x0, x1, x2, x3) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaApp (_loc,
                                         (Ast.PaId (_loc,
                                            (Ast.IdAcc (_loc,
                                               (Ast.IdUid (_loc, "Ast")),
                                               (Ast.IdUid (_loc, "CrVvr")))))),
                                         (meta_loc _loc x0))),
                                      (meta_string _loc x1))),
                                   (meta_mutable_flag _loc x2))),
                                (meta_ctyp _loc x3))
                          | Ast.CrVir (x0, x1, x2, x3) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaApp (_loc,
                                         (Ast.PaId (_loc,
                                            (Ast.IdAcc (_loc,
                                               (Ast.IdUid (_loc, "Ast")),
                                               (Ast.IdUid (_loc, "CrVir")))))),
                                         (meta_loc _loc x0))),
                                      (meta_string _loc x1))),
                                   (meta_private_flag _loc x2))),
                                (meta_ctyp _loc x3))
                          | Ast.CrVal (x0, x1, x2, x3, x4) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaApp (_loc,
                                         (Ast.PaApp (_loc,
                                            (Ast.PaId (_loc,
                                               (Ast.IdAcc (_loc,
                                                  (Ast.IdUid (_loc, "Ast")),
                                                  (Ast.IdUid (_loc, "CrVal")))))),
                                            (meta_loc _loc x0))),
                                         (meta_string _loc x1))),
                                      (meta_override_flag _loc x2))),
                                   (meta_mutable_flag _loc x3))),
                                (meta_expr _loc x4))
                          | Ast.CrMth (x0, x1, x2, x3, x4, x5) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaApp (_loc,
                                         (Ast.PaApp (_loc,
                                            (Ast.PaApp (_loc,
                                               (Ast.PaId (_loc,
                                                  (Ast.IdAcc (_loc,
                                                     (Ast.IdUid (_loc, "Ast")),
                                                     (Ast.IdUid (_loc,
                                                        "CrMth")))))),
                                               (meta_loc _loc x0))),
                                            (meta_string _loc x1))),
                                         (meta_override_flag _loc x2))),
                                      (meta_private_flag _loc x3))),
                                   (meta_expr _loc x4))),
                                (meta_ctyp _loc x5))
                          | Ast.CrIni (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "CrIni")))))),
                                   (meta_loc _loc x0))),
                                (meta_expr _loc x1))
                          | Ast.CrInh (x0, x1, x2, x3) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaApp (_loc,
                                         (Ast.PaId (_loc,
                                            (Ast.IdAcc (_loc,
                                               (Ast.IdUid (_loc, "Ast")),
                                               (Ast.IdUid (_loc, "CrInh")))))),
                                         (meta_loc _loc x0))),
                                      (meta_override_flag _loc x1))),
                                   (meta_class_expr _loc x2))),
                                (meta_string _loc x3))
                          | Ast.CrCtr (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "CrCtr")))))),
                                      (meta_loc _loc x0))),
                                   (meta_ctyp _loc x1))),
                                (meta_ctyp _loc x2))
                          | Ast.CrSem (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "CrSem")))))),
                                      (meta_loc _loc x0))),
                                   (meta_class_str_item _loc x1))),
                                (meta_class_str_item _loc x2))
                          | Ast.CrNil x0 ->
                              Ast.PaApp (_loc,
                                (Ast.PaId (_loc,
                                   (Ast.IdAcc (_loc,
                                      (Ast.IdUid (_loc, "Ast")),
                                      (Ast.IdUid (_loc, "CrNil")))))),
                                (meta_loc _loc x0))
                        and meta_class_type _loc =
                          function
                          | Ast.CtAnt (x0, x1) -> Ast.PaAnt (x0, x1)
                          | Ast.CtEq (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "CtEq")))))),
                                      (meta_loc _loc x0))),
                                   (meta_class_type _loc x1))),
                                (meta_class_type _loc x2))
                          | Ast.CtCol (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "CtCol")))))),
                                      (meta_loc _loc x0))),
                                   (meta_class_type _loc x1))),
                                (meta_class_type _loc x2))
                          | Ast.CtAnd (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "CtAnd")))))),
                                      (meta_loc _loc x0))),
                                   (meta_class_type _loc x1))),
                                (meta_class_type _loc x2))
                          | Ast.CtSig (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "CtSig")))))),
                                      (meta_loc _loc x0))),
                                   (meta_ctyp _loc x1))),
                                (meta_class_sig_item _loc x2))
                          | Ast.CtFun (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "CtFun")))))),
                                      (meta_loc _loc x0))),
                                   (meta_ctyp _loc x1))),
                                (meta_class_type _loc x2))
                          | Ast.CtCon (x0, x1, x2, x3) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaApp (_loc,
                                         (Ast.PaId (_loc,
                                            (Ast.IdAcc (_loc,
                                               (Ast.IdUid (_loc, "Ast")),
                                               (Ast.IdUid (_loc, "CtCon")))))),
                                         (meta_loc _loc x0))),
                                      (meta_virtual_flag _loc x1))),
                                   (meta_ident _loc x2))),
                                (meta_ctyp _loc x3))
                          | Ast.CtNil x0 ->
                              Ast.PaApp (_loc,
                                (Ast.PaId (_loc,
                                   (Ast.IdAcc (_loc,
                                      (Ast.IdUid (_loc, "Ast")),
                                      (Ast.IdUid (_loc, "CtNil")))))),
                                (meta_loc _loc x0))
                        and meta_ctyp _loc =
                          function
                          | Ast.TyAnt (x0, x1) -> Ast.PaAnt (x0, x1)
                          | Ast.TyPkg (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "TyPkg")))))),
                                   (meta_loc _loc x0))),
                                (meta_module_type _loc x1))
                          | Ast.TyOfAmp (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "TyOfAmp")))))),
                                      (meta_loc _loc x0))),
                                   (meta_ctyp _loc x1))),
                                (meta_ctyp _loc x2))
                          | Ast.TyAmp (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "TyAmp")))))),
                                      (meta_loc _loc x0))),
                                   (meta_ctyp _loc x1))),
                                (meta_ctyp _loc x2))
                          | Ast.TyVrnInfSup (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "TyVrnInfSup")))))),
                                      (meta_loc _loc x0))),
                                   (meta_ctyp _loc x1))),
                                (meta_ctyp _loc x2))
                          | Ast.TyVrnInf (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "TyVrnInf")))))),
                                   (meta_loc _loc x0))),
                                (meta_ctyp _loc x1))
                          | Ast.TyVrnSup (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "TyVrnSup")))))),
                                   (meta_loc _loc x0))),
                                (meta_ctyp _loc x1))
                          | Ast.TyVrnEq (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "TyVrnEq")))))),
                                   (meta_loc _loc x0))),
                                (meta_ctyp _loc x1))
                          | Ast.TySta (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "TySta")))))),
                                      (meta_loc _loc x0))),
                                   (meta_ctyp _loc x1))),
                                (meta_ctyp _loc x2))
                          | Ast.TyTup (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "TyTup")))))),
                                   (meta_loc _loc x0))),
                                (meta_ctyp _loc x1))
                          | Ast.TyMut (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "TyMut")))))),
                                   (meta_loc _loc x0))),
                                (meta_ctyp _loc x1))
                          | Ast.TyPrv (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "TyPrv")))))),
                                   (meta_loc _loc x0))),
                                (meta_ctyp _loc x1))
                          | Ast.TyOr (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "TyOr")))))),
                                      (meta_loc _loc x0))),
                                   (meta_ctyp _loc x1))),
                                (meta_ctyp _loc x2))
                          | Ast.TyAnd (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "TyAnd")))))),
                                      (meta_loc _loc x0))),
                                   (meta_ctyp _loc x1))),
                                (meta_ctyp _loc x2))
                          | Ast.TyOf (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "TyOf")))))),
                                      (meta_loc _loc x0))),
                                   (meta_ctyp _loc x1))),
                                (meta_ctyp _loc x2))
                          | Ast.TySum (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "TySum")))))),
                                   (meta_loc _loc x0))),
                                (meta_ctyp _loc x1))
                          | Ast.TyCom (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "TyCom")))))),
                                      (meta_loc _loc x0))),
                                   (meta_ctyp _loc x1))),
                                (meta_ctyp _loc x2))
                          | Ast.TySem (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "TySem")))))),
                                      (meta_loc _loc x0))),
                                   (meta_ctyp _loc x1))),
                                (meta_ctyp _loc x2))
                          | Ast.TyCol (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "TyCol")))))),
                                      (meta_loc _loc x0))),
                                   (meta_ctyp _loc x1))),
                                (meta_ctyp _loc x2))
                          | Ast.TyRec (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "TyRec")))))),
                                   (meta_loc _loc x0))),
                                (meta_ctyp _loc x1))
                          | Ast.TyVrn (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "TyVrn")))))),
                                   (meta_loc _loc x0))),
                                (meta_string _loc x1))
                          | Ast.TyQuM (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "TyQuM")))))),
                                   (meta_loc _loc x0))),
                                (meta_string _loc x1))
                          | Ast.TyQuP (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "TyQuP")))))),
                                   (meta_loc _loc x0))),
                                (meta_string _loc x1))
                          | Ast.TyQuo (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "TyQuo")))))),
                                   (meta_loc _loc x0))),
                                (meta_string _loc x1))
                          | Ast.TyPol (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "TyPol")))))),
                                      (meta_loc _loc x0))),
                                   (meta_ctyp _loc x1))),
                                (meta_ctyp _loc x2))
                          | Ast.TyOlb (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "TyOlb")))))),
                                      (meta_loc _loc x0))),
                                   (meta_string _loc x1))),
                                (meta_ctyp _loc x2))
                          | Ast.TyObj (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "TyObj")))))),
                                      (meta_loc _loc x0))),
                                   (meta_ctyp _loc x1))),
                                (meta_row_var_flag _loc x2))
                          | Ast.TyDcl (x0, x1, x2, x3, x4) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaApp (_loc,
                                         (Ast.PaApp (_loc,
                                            (Ast.PaId (_loc,
                                               (Ast.IdAcc (_loc,
                                                  (Ast.IdUid (_loc, "Ast")),
                                                  (Ast.IdUid (_loc, "TyDcl")))))),
                                            (meta_loc _loc x0))),
                                         (meta_string _loc x1))),
                                      (meta_list meta_ctyp _loc x2))),
                                   (meta_ctyp _loc x3))),
                                (meta_list
                                   (fun _loc (x1, x2) ->
                                      Ast.PaTup (_loc,
                                        (Ast.PaCom (_loc,
                                           (meta_ctyp _loc x1),
                                           (meta_ctyp _loc x2)))))
                                   _loc x4))
                          | Ast.TyMan (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "TyMan")))))),
                                      (meta_loc _loc x0))),
                                   (meta_ctyp _loc x1))),
                                (meta_ctyp _loc x2))
                          | Ast.TyId (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "TyId")))))),
                                   (meta_loc _loc x0))),
                                (meta_ident _loc x1))
                          | Ast.TyLab (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "TyLab")))))),
                                      (meta_loc _loc x0))),
                                   (meta_string _loc x1))),
                                (meta_ctyp _loc x2))
                          | Ast.TyCls (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "TyCls")))))),
                                   (meta_loc _loc x0))),
                                (meta_ident _loc x1))
                          | Ast.TyArr (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "TyArr")))))),
                                      (meta_loc _loc x0))),
                                   (meta_ctyp _loc x1))),
                                (meta_ctyp _loc x2))
                          | Ast.TyApp (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "TyApp")))))),
                                      (meta_loc _loc x0))),
                                   (meta_ctyp _loc x1))),
                                (meta_ctyp _loc x2))
                          | Ast.TyAny x0 ->
                              Ast.PaApp (_loc,
                                (Ast.PaId (_loc,
                                   (Ast.IdAcc (_loc,
                                      (Ast.IdUid (_loc, "Ast")),
                                      (Ast.IdUid (_loc, "TyAny")))))),
                                (meta_loc _loc x0))
                          | Ast.TyAli (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "TyAli")))))),
                                      (meta_loc _loc x0))),
                                   (meta_ctyp _loc x1))),
                                (meta_ctyp _loc x2))
                          | Ast.TyNil x0 ->
                              Ast.PaApp (_loc,
                                (Ast.PaId (_loc,
                                   (Ast.IdAcc (_loc,
                                      (Ast.IdUid (_loc, "Ast")),
                                      (Ast.IdUid (_loc, "TyNil")))))),
                                (meta_loc _loc x0))
                        and meta_direction_flag _loc =
                          function
                          | Ast.DiAnt x0 -> Ast.PaAnt (_loc, x0)
                          | Ast.DiDownto ->
                              Ast.PaId (_loc,
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
                                   (Ast.IdUid (_loc, "DiDownto")))))
                          | Ast.DiTo ->
                              Ast.PaId (_loc,
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
                                   (Ast.IdUid (_loc, "DiTo")))))
                        and meta_expr _loc =
                          function
                          | Ast.ExPkg (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "ExPkg")))))),
                                   (meta_loc _loc x0))),
                                (meta_module_expr _loc x1))
                          | Ast.ExFUN (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "ExFUN")))))),
                                      (meta_loc _loc x0))),
                                   (meta_string _loc x1))),
                                (meta_expr _loc x2))
                          | Ast.ExOpI (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "ExOpI")))))),
                                      (meta_loc _loc x0))),
                                   (meta_ident _loc x1))),
                                (meta_expr _loc x2))
                          | Ast.ExWhi (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "ExWhi")))))),
                                      (meta_loc _loc x0))),
                                   (meta_expr _loc x1))),
                                (meta_expr _loc x2))
                          | Ast.ExVrn (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "ExVrn")))))),
                                   (meta_loc _loc x0))),
                                (meta_string _loc x1))
                          | Ast.ExTyc (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "ExTyc")))))),
                                      (meta_loc _loc x0))),
                                   (meta_expr _loc x1))),
                                (meta_ctyp _loc x2))
                          | Ast.ExCom (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "ExCom")))))),
                                      (meta_loc _loc x0))),
                                   (meta_expr _loc x1))),
                                (meta_expr _loc x2))
                          | Ast.ExTup (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "ExTup")))))),
                                   (meta_loc _loc x0))),
                                (meta_expr _loc x1))
                          | Ast.ExTry (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "ExTry")))))),
                                      (meta_loc _loc x0))),
                                   (meta_expr _loc x1))),
                                (meta_match_case _loc x2))
                          | Ast.ExStr (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "ExStr")))))),
                                   (meta_loc _loc x0))),
                                (meta_string _loc x1))
                          | Ast.ExSte (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "ExSte")))))),
                                      (meta_loc _loc x0))),
                                   (meta_expr _loc x1))),
                                (meta_expr _loc x2))
                          | Ast.ExSnd (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "ExSnd")))))),
                                      (meta_loc _loc x0))),
                                   (meta_expr _loc x1))),
                                (meta_string _loc x2))
                          | Ast.ExSeq (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "ExSeq")))))),
                                   (meta_loc _loc x0))),
                                (meta_expr _loc x1))
                          | Ast.ExRec (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "ExRec")))))),
                                      (meta_loc _loc x0))),
                                   (meta_rec_binding _loc x1))),
                                (meta_expr _loc x2))
                          | Ast.ExOvr (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "ExOvr")))))),
                                   (meta_loc _loc x0))),
                                (meta_rec_binding _loc x1))
                          | Ast.ExOlb (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "ExOlb")))))),
                                      (meta_loc _loc x0))),
                                   (meta_string _loc x1))),
                                (meta_expr _loc x2))
                          | Ast.ExObj (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "ExObj")))))),
                                      (meta_loc _loc x0))),
                                   (meta_patt _loc x1))),
                                (meta_class_str_item _loc x2))
                          | Ast.ExNew (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "ExNew")))))),
                                   (meta_loc _loc x0))),
                                (meta_ident _loc x1))
                          | Ast.ExMat (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "ExMat")))))),
                                      (meta_loc _loc x0))),
                                   (meta_expr _loc x1))),
                                (meta_match_case _loc x2))
                          | Ast.ExLmd (x0, x1, x2, x3) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaApp (_loc,
                                         (Ast.PaId (_loc,
                                            (Ast.IdAcc (_loc,
                                               (Ast.IdUid (_loc, "Ast")),
                                               (Ast.IdUid (_loc, "ExLmd")))))),
                                         (meta_loc _loc x0))),
                                      (meta_string _loc x1))),
                                   (meta_module_expr _loc x2))),
                                (meta_expr _loc x3))
                          | Ast.ExLet (x0, x1, x2, x3) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaApp (_loc,
                                         (Ast.PaId (_loc,
                                            (Ast.IdAcc (_loc,
                                               (Ast.IdUid (_loc, "Ast")),
                                               (Ast.IdUid (_loc, "ExLet")))))),
                                         (meta_loc _loc x0))),
                                      (meta_rec_flag _loc x1))),
                                   (meta_binding _loc x2))),
                                (meta_expr _loc x3))
                          | Ast.ExLaz (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "ExLaz")))))),
                                   (meta_loc _loc x0))),
                                (meta_expr _loc x1))
                          | Ast.ExLab (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "ExLab")))))),
                                      (meta_loc _loc x0))),
                                   (meta_string _loc x1))),
                                (meta_expr _loc x2))
                          | Ast.ExNativeInt (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "ExNativeInt")))))),
                                   (meta_loc _loc x0))),
                                (meta_string _loc x1))
                          | Ast.ExInt64 (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "ExInt64")))))),
                                   (meta_loc _loc x0))),
                                (meta_string _loc x1))
                          | Ast.ExInt32 (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "ExInt32")))))),
                                   (meta_loc _loc x0))),
                                (meta_string _loc x1))
                          | Ast.ExInt (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "ExInt")))))),
                                   (meta_loc _loc x0))),
                                (meta_string _loc x1))
                          | Ast.ExIfe (x0, x1, x2, x3) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaApp (_loc,
                                         (Ast.PaId (_loc,
                                            (Ast.IdAcc (_loc,
                                               (Ast.IdUid (_loc, "Ast")),
                                               (Ast.IdUid (_loc, "ExIfe")))))),
                                         (meta_loc _loc x0))),
                                      (meta_expr _loc x1))),
                                   (meta_expr _loc x2))),
                                (meta_expr _loc x3))
                          | Ast.ExFun (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "ExFun")))))),
                                   (meta_loc _loc x0))),
                                (meta_match_case _loc x1))
                          | Ast.ExFor (x0, x1, x2, x3, x4, x5) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaApp (_loc,
                                         (Ast.PaApp (_loc,
                                            (Ast.PaApp (_loc,
                                               (Ast.PaId (_loc,
                                                  (Ast.IdAcc (_loc,
                                                     (Ast.IdUid (_loc, "Ast")),
                                                     (Ast.IdUid (_loc,
                                                        "ExFor")))))),
                                               (meta_loc _loc x0))),
                                            (meta_string _loc x1))),
                                         (meta_expr _loc x2))),
                                      (meta_expr _loc x3))),
                                   (meta_direction_flag _loc x4))),
                                (meta_expr _loc x5))
                          | Ast.ExFlo (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "ExFlo")))))),
                                   (meta_loc _loc x0))),
                                (meta_string _loc x1))
                          | Ast.ExCoe (x0, x1, x2, x3) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaApp (_loc,
                                         (Ast.PaId (_loc,
                                            (Ast.IdAcc (_loc,
                                               (Ast.IdUid (_loc, "Ast")),
                                               (Ast.IdUid (_loc, "ExCoe")))))),
                                         (meta_loc _loc x0))),
                                      (meta_expr _loc x1))),
                                   (meta_ctyp _loc x2))),
                                (meta_ctyp _loc x3))
                          | Ast.ExChr (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "ExChr")))))),
                                   (meta_loc _loc x0))),
                                (meta_string _loc x1))
                          | Ast.ExAss (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "ExAss")))))),
                                      (meta_loc _loc x0))),
                                   (meta_expr _loc x1))),
                                (meta_expr _loc x2))
                          | Ast.ExAsr (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "ExAsr")))))),
                                   (meta_loc _loc x0))),
                                (meta_expr _loc x1))
                          | Ast.ExAsf x0 ->
                              Ast.PaApp (_loc,
                                (Ast.PaId (_loc,
                                   (Ast.IdAcc (_loc,
                                      (Ast.IdUid (_loc, "Ast")),
                                      (Ast.IdUid (_loc, "ExAsf")))))),
                                (meta_loc _loc x0))
                          | Ast.ExSem (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "ExSem")))))),
                                      (meta_loc _loc x0))),
                                   (meta_expr _loc x1))),
                                (meta_expr _loc x2))
                          | Ast.ExArr (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "ExArr")))))),
                                   (meta_loc _loc x0))),
                                (meta_expr _loc x1))
                          | Ast.ExAre (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "ExAre")))))),
                                      (meta_loc _loc x0))),
                                   (meta_expr _loc x1))),
                                (meta_expr _loc x2))
                          | Ast.ExApp (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "ExApp")))))),
                                      (meta_loc _loc x0))),
                                   (meta_expr _loc x1))),
                                (meta_expr _loc x2))
                          | Ast.ExAnt (x0, x1) -> Ast.PaAnt (x0, x1)
                          | Ast.ExAcc (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "ExAcc")))))),
                                      (meta_loc _loc x0))),
                                   (meta_expr _loc x1))),
                                (meta_expr _loc x2))
                          | Ast.ExId (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "ExId")))))),
                                   (meta_loc _loc x0))),
                                (meta_ident _loc x1))
                          | Ast.ExNil x0 ->
                              Ast.PaApp (_loc,
                                (Ast.PaId (_loc,
                                   (Ast.IdAcc (_loc,
                                      (Ast.IdUid (_loc, "Ast")),
                                      (Ast.IdUid (_loc, "ExNil")))))),
                                (meta_loc _loc x0))
                        and meta_ident _loc =
                          function
                          | Ast.IdAnt (x0, x1) -> Ast.PaAnt (x0, x1)
                          | Ast.IdUid (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "IdUid")))))),
                                   (meta_loc _loc x0))),
                                (meta_string _loc x1))
                          | Ast.IdLid (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "IdLid")))))),
                                   (meta_loc _loc x0))),
                                (meta_string _loc x1))
                          | Ast.IdApp (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "IdApp")))))),
                                      (meta_loc _loc x0))),
                                   (meta_ident _loc x1))),
                                (meta_ident _loc x2))
                          | Ast.IdAcc (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "IdAcc")))))),
                                      (meta_loc _loc x0))),
                                   (meta_ident _loc x1))),
                                (meta_ident _loc x2))
                        and meta_match_case _loc =
                          function
                          | Ast.McAnt (x0, x1) -> Ast.PaAnt (x0, x1)
                          | Ast.McArr (x0, x1, x2, x3) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaApp (_loc,
                                         (Ast.PaId (_loc,
                                            (Ast.IdAcc (_loc,
                                               (Ast.IdUid (_loc, "Ast")),
                                               (Ast.IdUid (_loc, "McArr")))))),
                                         (meta_loc _loc x0))),
                                      (meta_patt _loc x1))),
                                   (meta_expr _loc x2))),
                                (meta_expr _loc x3))
                          | Ast.McOr (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "McOr")))))),
                                      (meta_loc _loc x0))),
                                   (meta_match_case _loc x1))),
                                (meta_match_case _loc x2))
                          | Ast.McNil x0 ->
                              Ast.PaApp (_loc,
                                (Ast.PaId (_loc,
                                   (Ast.IdAcc (_loc,
                                      (Ast.IdUid (_loc, "Ast")),
                                      (Ast.IdUid (_loc, "McNil")))))),
                                (meta_loc _loc x0))
                        and meta_meta_bool _loc =
                          function
                          | Ast.BAnt x0 -> Ast.PaAnt (_loc, x0)
                          | Ast.BFalse ->
                              Ast.PaId (_loc,
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
                                   (Ast.IdUid (_loc, "BFalse")))))
                          | Ast.BTrue ->
                              Ast.PaId (_loc,
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
                                   (Ast.IdUid (_loc, "BTrue")))))
                        and meta_meta_list mf_a _loc =
                          function
                          | Ast.LAnt x0 -> Ast.PaAnt (_loc, x0)
                          | Ast.LCons (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "LCons")))))),
                                   (mf_a _loc x0))),
                                (meta_meta_list mf_a _loc x1))
                          | Ast.LNil ->
                              Ast.PaId (_loc,
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
                                   (Ast.IdUid (_loc, "LNil")))))
                        and meta_meta_option mf_a _loc =
                          function
                          | Ast.OAnt x0 -> Ast.PaAnt (_loc, x0)
                          | Ast.OSome x0 ->
                              Ast.PaApp (_loc,
                                (Ast.PaId (_loc,
                                   (Ast.IdAcc (_loc,
                                      (Ast.IdUid (_loc, "Ast")),
                                      (Ast.IdUid (_loc, "OSome")))))),
                                (mf_a _loc x0))
                          | Ast.ONone ->
                              Ast.PaId (_loc,
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
                                   (Ast.IdUid (_loc, "ONone")))))
                        and meta_module_binding _loc =
                          function
                          | Ast.MbAnt (x0, x1) -> Ast.PaAnt (x0, x1)
                          | Ast.MbCol (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "MbCol")))))),
                                      (meta_loc _loc x0))),
                                   (meta_string _loc x1))),
                                (meta_module_type _loc x2))
                          | Ast.MbColEq (x0, x1, x2, x3) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaApp (_loc,
                                         (Ast.PaId (_loc,
                                            (Ast.IdAcc (_loc,
                                               (Ast.IdUid (_loc, "Ast")),
                                               (Ast.IdUid (_loc, "MbColEq")))))),
                                         (meta_loc _loc x0))),
                                      (meta_string _loc x1))),
                                   (meta_module_type _loc x2))),
                                (meta_module_expr _loc x3))
                          | Ast.MbAnd (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "MbAnd")))))),
                                      (meta_loc _loc x0))),
                                   (meta_module_binding _loc x1))),
                                (meta_module_binding _loc x2))
                          | Ast.MbNil x0 ->
                              Ast.PaApp (_loc,
                                (Ast.PaId (_loc,
                                   (Ast.IdAcc (_loc,
                                      (Ast.IdUid (_loc, "Ast")),
                                      (Ast.IdUid (_loc, "MbNil")))))),
                                (meta_loc _loc x0))
                        and meta_module_expr _loc =
                          function
                          | Ast.MeAnt (x0, x1) -> Ast.PaAnt (x0, x1)
                          | Ast.MePkg (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "MePkg")))))),
                                   (meta_loc _loc x0))),
                                (meta_expr _loc x1))
                          | Ast.MeTyc (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "MeTyc")))))),
                                      (meta_loc _loc x0))),
                                   (meta_module_expr _loc x1))),
                                (meta_module_type _loc x2))
                          | Ast.MeStr (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "MeStr")))))),
                                   (meta_loc _loc x0))),
                                (meta_str_item _loc x1))
                          | Ast.MeFun (x0, x1, x2, x3) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaApp (_loc,
                                         (Ast.PaId (_loc,
                                            (Ast.IdAcc (_loc,
                                               (Ast.IdUid (_loc, "Ast")),
                                               (Ast.IdUid (_loc, "MeFun")))))),
                                         (meta_loc _loc x0))),
                                      (meta_string _loc x1))),
                                   (meta_module_type _loc x2))),
                                (meta_module_expr _loc x3))
                          | Ast.MeApp (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "MeApp")))))),
                                      (meta_loc _loc x0))),
                                   (meta_module_expr _loc x1))),
                                (meta_module_expr _loc x2))
                          | Ast.MeId (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "MeId")))))),
                                   (meta_loc _loc x0))),
                                (meta_ident _loc x1))
                          | Ast.MeNil x0 ->
                              Ast.PaApp (_loc,
                                (Ast.PaId (_loc,
                                   (Ast.IdAcc (_loc,
                                      (Ast.IdUid (_loc, "Ast")),
                                      (Ast.IdUid (_loc, "MeNil")))))),
                                (meta_loc _loc x0))
                        and meta_module_type _loc =
                          function
                          | Ast.MtAnt (x0, x1) -> Ast.PaAnt (x0, x1)
                          | Ast.MtWit (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "MtWit")))))),
                                      (meta_loc _loc x0))),
                                   (meta_module_type _loc x1))),
                                (meta_with_constr _loc x2))
                          | Ast.MtSig (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "MtSig")))))),
                                   (meta_loc _loc x0))),
                                (meta_sig_item _loc x1))
                          | Ast.MtQuo (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "MtQuo")))))),
                                   (meta_loc _loc x0))),
                                (meta_string _loc x1))
                          | Ast.MtFun (x0, x1, x2, x3) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaApp (_loc,
                                         (Ast.PaId (_loc,
                                            (Ast.IdAcc (_loc,
                                               (Ast.IdUid (_loc, "Ast")),
                                               (Ast.IdUid (_loc, "MtFun")))))),
                                         (meta_loc _loc x0))),
                                      (meta_string _loc x1))),
                                   (meta_module_type _loc x2))),
                                (meta_module_type _loc x3))
                          | Ast.MtId (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "MtId")))))),
                                   (meta_loc _loc x0))),
                                (meta_ident _loc x1))
                          | Ast.MtNil x0 ->
                              Ast.PaApp (_loc,
                                (Ast.PaId (_loc,
                                   (Ast.IdAcc (_loc,
                                      (Ast.IdUid (_loc, "Ast")),
                                      (Ast.IdUid (_loc, "MtNil")))))),
                                (meta_loc _loc x0))
                        and meta_mutable_flag _loc =
                          function
                          | Ast.MuAnt x0 -> Ast.PaAnt (_loc, x0)
                          | Ast.MuNil ->
                              Ast.PaId (_loc,
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
                                   (Ast.IdUid (_loc, "MuNil")))))
                          | Ast.MuMutable ->
                              Ast.PaId (_loc,
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
                                   (Ast.IdUid (_loc, "MuMutable")))))
                        and meta_override_flag _loc =
                          function
                          | Ast.OvAnt x0 -> Ast.PaAnt (_loc, x0)
                          | Ast.OvNil ->
                              Ast.PaId (_loc,
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
                                   (Ast.IdUid (_loc, "OvNil")))))
                          | Ast.OvOverride ->
                              Ast.PaId (_loc,
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
                                   (Ast.IdUid (_loc, "OvOverride")))))
                        and meta_patt _loc =
                          function
                          | Ast.PaLaz (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "PaLaz")))))),
                                   (meta_loc _loc x0))),
                                (meta_patt _loc x1))
                          | Ast.PaVrn (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "PaVrn")))))),
                                   (meta_loc _loc x0))),
                                (meta_string _loc x1))
                          | Ast.PaTyp (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "PaTyp")))))),
                                   (meta_loc _loc x0))),
                                (meta_ident _loc x1))
                          | Ast.PaTyc (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "PaTyc")))))),
                                      (meta_loc _loc x0))),
                                   (meta_patt _loc x1))),
                                (meta_ctyp _loc x2))
                          | Ast.PaTup (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "PaTup")))))),
                                   (meta_loc _loc x0))),
                                (meta_patt _loc x1))
                          | Ast.PaStr (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "PaStr")))))),
                                   (meta_loc _loc x0))),
                                (meta_string _loc x1))
                          | Ast.PaEq (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "PaEq")))))),
                                      (meta_loc _loc x0))),
                                   (meta_ident _loc x1))),
                                (meta_patt _loc x2))
                          | Ast.PaRec (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "PaRec")))))),
                                   (meta_loc _loc x0))),
                                (meta_patt _loc x1))
                          | Ast.PaRng (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "PaRng")))))),
                                      (meta_loc _loc x0))),
                                   (meta_patt _loc x1))),
                                (meta_patt _loc x2))
                          | Ast.PaOrp (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "PaOrp")))))),
                                      (meta_loc _loc x0))),
                                   (meta_patt _loc x1))),
                                (meta_patt _loc x2))
                          | Ast.PaOlbi (x0, x1, x2, x3) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaApp (_loc,
                                         (Ast.PaId (_loc,
                                            (Ast.IdAcc (_loc,
                                               (Ast.IdUid (_loc, "Ast")),
                                               (Ast.IdUid (_loc, "PaOlbi")))))),
                                         (meta_loc _loc x0))),
                                      (meta_string _loc x1))),
                                   (meta_patt _loc x2))),
                                (meta_expr _loc x3))
                          | Ast.PaOlb (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "PaOlb")))))),
                                      (meta_loc _loc x0))),
                                   (meta_string _loc x1))),
                                (meta_patt _loc x2))
                          | Ast.PaLab (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "PaLab")))))),
                                      (meta_loc _loc x0))),
                                   (meta_string _loc x1))),
                                (meta_patt _loc x2))
                          | Ast.PaFlo (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "PaFlo")))))),
                                   (meta_loc _loc x0))),
                                (meta_string _loc x1))
                          | Ast.PaNativeInt (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "PaNativeInt")))))),
                                   (meta_loc _loc x0))),
                                (meta_string _loc x1))
                          | Ast.PaInt64 (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "PaInt64")))))),
                                   (meta_loc _loc x0))),
                                (meta_string _loc x1))
                          | Ast.PaInt32 (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "PaInt32")))))),
                                   (meta_loc _loc x0))),
                                (meta_string _loc x1))
                          | Ast.PaInt (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "PaInt")))))),
                                   (meta_loc _loc x0))),
                                (meta_string _loc x1))
                          | Ast.PaChr (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "PaChr")))))),
                                   (meta_loc _loc x0))),
                                (meta_string _loc x1))
                          | Ast.PaSem (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "PaSem")))))),
                                      (meta_loc _loc x0))),
                                   (meta_patt _loc x1))),
                                (meta_patt _loc x2))
                          | Ast.PaCom (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "PaCom")))))),
                                      (meta_loc _loc x0))),
                                   (meta_patt _loc x1))),
                                (meta_patt _loc x2))
                          | Ast.PaArr (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "PaArr")))))),
                                   (meta_loc _loc x0))),
                                (meta_patt _loc x1))
                          | Ast.PaApp (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "PaApp")))))),
                                      (meta_loc _loc x0))),
                                   (meta_patt _loc x1))),
                                (meta_patt _loc x2))
                          | Ast.PaAny x0 ->
                              Ast.PaApp (_loc,
                                (Ast.PaId (_loc,
                                   (Ast.IdAcc (_loc,
                                      (Ast.IdUid (_loc, "Ast")),
                                      (Ast.IdUid (_loc, "PaAny")))))),
                                (meta_loc _loc x0))
                          | Ast.PaAnt (x0, x1) -> Ast.PaAnt (x0, x1)
                          | Ast.PaAli (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "PaAli")))))),
                                      (meta_loc _loc x0))),
                                   (meta_patt _loc x1))),
                                (meta_patt _loc x2))
                          | Ast.PaId (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "PaId")))))),
                                   (meta_loc _loc x0))),
                                (meta_ident _loc x1))
                          | Ast.PaNil x0 ->
                              Ast.PaApp (_loc,
                                (Ast.PaId (_loc,
                                   (Ast.IdAcc (_loc,
                                      (Ast.IdUid (_loc, "Ast")),
                                      (Ast.IdUid (_loc, "PaNil")))))),
                                (meta_loc _loc x0))
                        and meta_private_flag _loc =
                          function
                          | Ast.PrAnt x0 -> Ast.PaAnt (_loc, x0)
                          | Ast.PrNil ->
                              Ast.PaId (_loc,
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
                                   (Ast.IdUid (_loc, "PrNil")))))
                          | Ast.PrPrivate ->
                              Ast.PaId (_loc,
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
                                   (Ast.IdUid (_loc, "PrPrivate")))))
                        and meta_rec_binding _loc =
                          function
                          | Ast.RbAnt (x0, x1) -> Ast.PaAnt (x0, x1)
                          | Ast.RbEq (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "RbEq")))))),
                                      (meta_loc _loc x0))),
                                   (meta_ident _loc x1))),
                                (meta_expr _loc x2))
                          | Ast.RbSem (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "RbSem")))))),
                                      (meta_loc _loc x0))),
                                   (meta_rec_binding _loc x1))),
                                (meta_rec_binding _loc x2))
                          | Ast.RbNil x0 ->
                              Ast.PaApp (_loc,
                                (Ast.PaId (_loc,
                                   (Ast.IdAcc (_loc,
                                      (Ast.IdUid (_loc, "Ast")),
                                      (Ast.IdUid (_loc, "RbNil")))))),
                                (meta_loc _loc x0))
                        and meta_rec_flag _loc =
                          function
                          | Ast.ReAnt x0 -> Ast.PaAnt (_loc, x0)
                          | Ast.ReNil ->
                              Ast.PaId (_loc,
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
                                   (Ast.IdUid (_loc, "ReNil")))))
                          | Ast.ReRecursive ->
                              Ast.PaId (_loc,
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
                                   (Ast.IdUid (_loc, "ReRecursive")))))
                        and meta_row_var_flag _loc =
                          function
                          | Ast.RvAnt x0 -> Ast.PaAnt (_loc, x0)
                          | Ast.RvNil ->
                              Ast.PaId (_loc,
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
                                   (Ast.IdUid (_loc, "RvNil")))))
                          | Ast.RvRowVar ->
                              Ast.PaId (_loc,
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
                                   (Ast.IdUid (_loc, "RvRowVar")))))
                        and meta_sig_item _loc =
                          function
                          | Ast.SgAnt (x0, x1) -> Ast.PaAnt (x0, x1)
                          | Ast.SgVal (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "SgVal")))))),
                                      (meta_loc _loc x0))),
                                   (meta_string _loc x1))),
                                (meta_ctyp _loc x2))
                          | Ast.SgTyp (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "SgTyp")))))),
                                   (meta_loc _loc x0))),
                                (meta_ctyp _loc x1))
                          | Ast.SgOpn (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "SgOpn")))))),
                                   (meta_loc _loc x0))),
                                (meta_ident _loc x1))
                          | Ast.SgMty (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "SgMty")))))),
                                      (meta_loc _loc x0))),
                                   (meta_string _loc x1))),
                                (meta_module_type _loc x2))
                          | Ast.SgRecMod (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "SgRecMod")))))),
                                   (meta_loc _loc x0))),
                                (meta_module_binding _loc x1))
                          | Ast.SgMod (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "SgMod")))))),
                                      (meta_loc _loc x0))),
                                   (meta_string _loc x1))),
                                (meta_module_type _loc x2))
                          | Ast.SgInc (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "SgInc")))))),
                                   (meta_loc _loc x0))),
                                (meta_module_type _loc x1))
                          | Ast.SgExt (x0, x1, x2, x3) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaApp (_loc,
                                         (Ast.PaId (_loc,
                                            (Ast.IdAcc (_loc,
                                               (Ast.IdUid (_loc, "Ast")),
                                               (Ast.IdUid (_loc, "SgExt")))))),
                                         (meta_loc _loc x0))),
                                      (meta_string _loc x1))),
                                   (meta_ctyp _loc x2))),
                                (meta_meta_list meta_string _loc x3))
                          | Ast.SgExc (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "SgExc")))))),
                                   (meta_loc _loc x0))),
                                (meta_ctyp _loc x1))
                          | Ast.SgDir (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "SgDir")))))),
                                      (meta_loc _loc x0))),
                                   (meta_string _loc x1))),
                                (meta_expr _loc x2))
                          | Ast.SgSem (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "SgSem")))))),
                                      (meta_loc _loc x0))),
                                   (meta_sig_item _loc x1))),
                                (meta_sig_item _loc x2))
                          | Ast.SgClt (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "SgClt")))))),
                                   (meta_loc _loc x0))),
                                (meta_class_type _loc x1))
                          | Ast.SgCls (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "SgCls")))))),
                                   (meta_loc _loc x0))),
                                (meta_class_type _loc x1))
                          | Ast.SgNil x0 ->
                              Ast.PaApp (_loc,
                                (Ast.PaId (_loc,
                                   (Ast.IdAcc (_loc,
                                      (Ast.IdUid (_loc, "Ast")),
                                      (Ast.IdUid (_loc, "SgNil")))))),
                                (meta_loc _loc x0))
                        and meta_str_item _loc =
                          function
                          | Ast.StAnt (x0, x1) -> Ast.PaAnt (x0, x1)
                          | Ast.StVal (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "StVal")))))),
                                      (meta_loc _loc x0))),
                                   (meta_rec_flag _loc x1))),
                                (meta_binding _loc x2))
                          | Ast.StTyp (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "StTyp")))))),
                                   (meta_loc _loc x0))),
                                (meta_ctyp _loc x1))
                          | Ast.StOpn (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "StOpn")))))),
                                   (meta_loc _loc x0))),
                                (meta_ident _loc x1))
                          | Ast.StMty (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "StMty")))))),
                                      (meta_loc _loc x0))),
                                   (meta_string _loc x1))),
                                (meta_module_type _loc x2))
                          | Ast.StRecMod (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "StRecMod")))))),
                                   (meta_loc _loc x0))),
                                (meta_module_binding _loc x1))
                          | Ast.StMod (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "StMod")))))),
                                      (meta_loc _loc x0))),
                                   (meta_string _loc x1))),
                                (meta_module_expr _loc x2))
                          | Ast.StInc (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "StInc")))))),
                                   (meta_loc _loc x0))),
                                (meta_module_expr _loc x1))
                          | Ast.StExt (x0, x1, x2, x3) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaApp (_loc,
                                         (Ast.PaId (_loc,
                                            (Ast.IdAcc (_loc,
                                               (Ast.IdUid (_loc, "Ast")),
                                               (Ast.IdUid (_loc, "StExt")))))),
                                         (meta_loc _loc x0))),
                                      (meta_string _loc x1))),
                                   (meta_ctyp _loc x2))),
                                (meta_meta_list meta_string _loc x3))
                          | Ast.StExp (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "StExp")))))),
                                   (meta_loc _loc x0))),
                                (meta_expr _loc x1))
                          | Ast.StExc (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "StExc")))))),
                                      (meta_loc _loc x0))),
                                   (meta_ctyp _loc x1))),
                                (meta_meta_option meta_ident _loc x2))
                          | Ast.StDir (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "StDir")))))),
                                      (meta_loc _loc x0))),
                                   (meta_string _loc x1))),
                                (meta_expr _loc x2))
                          | Ast.StSem (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "StSem")))))),
                                      (meta_loc _loc x0))),
                                   (meta_str_item _loc x1))),
                                (meta_str_item _loc x2))
                          | Ast.StClt (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "StClt")))))),
                                   (meta_loc _loc x0))),
                                (meta_class_type _loc x1))
                          | Ast.StCls (x0, x1) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaId (_loc,
                                      (Ast.IdAcc (_loc,
                                         (Ast.IdUid (_loc, "Ast")),
                                         (Ast.IdUid (_loc, "StCls")))))),
                                   (meta_loc _loc x0))),
                                (meta_class_expr _loc x1))
                          | Ast.StNil x0 ->
                              Ast.PaApp (_loc,
                                (Ast.PaId (_loc,
                                   (Ast.IdAcc (_loc,
                                      (Ast.IdUid (_loc, "Ast")),
                                      (Ast.IdUid (_loc, "StNil")))))),
                                (meta_loc _loc x0))
                        and meta_virtual_flag _loc =
                          function
                          | Ast.ViAnt x0 -> Ast.PaAnt (_loc, x0)
                          | Ast.ViNil ->
                              Ast.PaId (_loc,
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
                                   (Ast.IdUid (_loc, "ViNil")))))
                          | Ast.ViVirtual ->
                              Ast.PaId (_loc,
                                (Ast.IdAcc (_loc, (Ast.IdUid (_loc, "Ast")),
                                   (Ast.IdUid (_loc, "ViVirtual")))))
                        and meta_with_constr _loc =
                          function
                          | Ast.WcAnt (x0, x1) -> Ast.PaAnt (x0, x1)
                          | Ast.WcAnd (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "WcAnd")))))),
                                      (meta_loc _loc x0))),
                                   (meta_with_constr _loc x1))),
                                (meta_with_constr _loc x2))
                          | Ast.WcMoS (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "WcMoS")))))),
                                      (meta_loc _loc x0))),
                                   (meta_ident _loc x1))),
                                (meta_ident _loc x2))
                          | Ast.WcTyS (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "WcTyS")))))),
                                      (meta_loc _loc x0))),
                                   (meta_ctyp _loc x1))),
                                (meta_ctyp _loc x2))
                          | Ast.WcMod (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "WcMod")))))),
                                      (meta_loc _loc x0))),
                                   (meta_ident _loc x1))),
                                (meta_ident _loc x2))
                          | Ast.WcTyp (x0, x1, x2) ->
                              Ast.PaApp (_loc,
                                (Ast.PaApp (_loc,
                                   (Ast.PaApp (_loc,
                                      (Ast.PaId (_loc,
                                         (Ast.IdAcc (_loc,
                                            (Ast.IdUid (_loc, "Ast")),
                                            (Ast.IdUid (_loc, "WcTyp")))))),
                                      (meta_loc _loc x0))),
                                   (meta_ctyp _loc x1))),
                                (meta_ctyp _loc x2))
                          | Ast.WcNil x0 ->
                              Ast.PaApp (_loc,
                                (Ast.PaId (_loc,
                                   (Ast.IdAcc (_loc,
                                      (Ast.IdUid (_loc, "Ast")),
                                      (Ast.IdUid (_loc, "WcNil")))))),
                                (meta_loc _loc x0))