text: let loc = Loc.ghost
  in
    Ast.StExp (loc,
      (Ast.ExLet (loc, Ast.ReNil,
         (Ast.BiEq (loc, (Ast.PaId (loc, (Ast.IdLid (loc, "loc")))),
            (Ast.ExId (loc,
               (Ast.IdAcc (loc, (Ast.IdUid (loc, "Loc")),
                  (Ast.IdLid (loc, "ghost")))))))),
         (Ast.ExApp (loc,
            (Ast.ExApp (loc,
               (Ast.ExId (loc,
                  (Ast.IdAcc (loc, (Ast.IdUid (loc, "Ast")),
                     (Ast.IdUid (loc, "StTyp")))))),
               (Ast.ExId (loc, (Ast.IdLid (loc, "loc")))))),
            (Ast.ExApp (loc,
               (Ast.ExApp (loc,
                  (Ast.ExApp (loc,
                     (Ast.ExApp (loc,
                        (Ast.ExApp (loc,
                           (Ast.ExId (loc,
                              (Ast.IdAcc (loc, (Ast.IdUid (loc, "Ast")),
                                 (Ast.IdUid (loc, "TyDcl")))))),
                           (Ast.ExId (loc, (Ast.IdLid (loc, "loc")))))),
                        (Ast.ExStr (loc, "t")))),
                     (Ast.ExId (loc, (Ast.IdUid (loc, "[]")))))),
                  (Ast.ExApp (loc,
                     (Ast.ExApp (loc,
                        (Ast.ExId (loc,
                           (Ast.IdAcc (loc, (Ast.IdUid (loc, "Ast")),
                              (Ast.IdUid (loc, "TySum")))))),
                        (Ast.ExId (loc, (Ast.IdLid (loc, "loc")))))),
                     (Ast.ExApp (loc,
                        (Ast.ExApp (loc,
                           (Ast.ExApp (loc,
                              (Ast.ExId (loc,
                                 (Ast.IdAcc (loc, (Ast.IdUid (loc, "Ast")),
                                    (Ast.IdUid (loc, "TyOr")))))),
                              (Ast.ExId (loc, (Ast.IdLid (loc, "loc")))))),
                           (Ast.ExApp (loc,
                              (Ast.ExApp (loc,
                                 (Ast.ExId (loc,
                                    (Ast.IdAcc (loc, (Ast.IdUid (loc, "Ast")),
                                       (Ast.IdUid (loc, "TyId")))))),
                                 (Ast.ExId (loc, (Ast.IdLid (loc, "loc")))))),
                              (Ast.ExApp (loc,
                                 (Ast.ExApp (loc,
                                    (Ast.ExId (loc,
                                       (Ast.IdAcc (loc,
                                          (Ast.IdUid (loc, "Ast")),
                                          (Ast.IdUid (loc, "IdUid")))))),
                                    (Ast.ExId (loc, (Ast.IdLid (loc, "loc")))))),
                                 (Ast.ExStr (loc, "A")))))))),
                        (Ast.ExApp (loc,
                           (Ast.ExApp (loc,
                              (Ast.ExId (loc,
                                 (Ast.IdAcc (loc, (Ast.IdUid (loc, "Ast")),
                                    (Ast.IdUid (loc, "TyId")))))),
                              (Ast.ExId (loc, (Ast.IdLid (loc, "loc")))))),
                           (Ast.ExApp (loc,
                              (Ast.ExApp (loc,
                                 (Ast.ExId (loc,
                                    (Ast.IdAcc (loc, (Ast.IdUid (loc, "Ast")),
                                       (Ast.IdUid (loc, "IdUid")))))),
                                 (Ast.ExId (loc, (Ast.IdLid (loc, "loc")))))),
                              (Ast.ExStr (loc, "B")))))))))))),
               (Ast.ExId (loc, (Ast.IdUid (loc, "[]")))))))))))
  
  
  