type ('js, 'ocaml) t = | Structure : (Astlib.Ast_500.Parsetree.structure, Ocaml.Ast.Parsetree.structure)
              t| Signature : (Astlib.Ast_500.Parsetree.signature, Ocaml.Ast.Parsetree.signature)
              t| Toplevel_phrase : (Astlib.Ast_500.Parsetree.toplevel_phrase,
                    Ocaml.Ast.Parsetree.toplevel_phrase)
                    t| Core_type : (Astlib.Ast_500.Parsetree.core_type, Ocaml.Ast.Parsetree.core_type)
              t| Expression : (Astlib.Ast_500.Parsetree.expression,
               Ocaml.Ast.Parsetree.expression)
               t| Pattern : (Astlib.Ast_500.Parsetree.pattern, Ocaml.Ast.Parsetree.pattern) t| Case : (Astlib.Ast_500.Parsetree.case, Ocaml.Ast.Parsetree.case) t| Type_declaration : (Astlib.Ast_500.Parsetree.type_declaration,
                     Ocaml.Ast.Parsetree.type_declaration)
                     t| Type_extension : (Astlib.Ast_500.Parsetree.type_extension,
                   Ocaml.Ast.Parsetree.type_extension)
                   t| Extension_constructor : (Astlib.Ast_500.Parsetree.extension_constructor,
                          Ocaml.Ast.Parsetree.extension_constructor)
                          t| Class_expr : (Astlib.Ast_500.Parsetree.class_expr,
               Ocaml.Ast.Parsetree.class_expr)
               t| Class_field : (Astlib.Ast_500.Parsetree.class_field,
                Ocaml.Ast.Parsetree.class_field)
                t| Class_type : (Astlib.Ast_500.Parsetree.class_type,
               Ocaml.Ast.Parsetree.class_type)
               t| Class_signature : (Astlib.Ast_500.Parsetree.class_signature,
                    Ocaml.Ast.Parsetree.class_signature)
                    t| Class_type_field : (Astlib.Ast_500.Parsetree.class_type_field,
                     Ocaml.Ast.Parsetree.class_type_field)
                     t| Module_expr : (Astlib.Ast_500.Parsetree.module_expr,
                Ocaml.Ast.Parsetree.module_expr)
                t| Module_type : (Astlib.Ast_500.Parsetree.module_type,
                Ocaml.Ast.Parsetree.module_type)
                t| Signature_item : (Astlib.Ast_500.Parsetree.signature_item,
                   Ocaml.Ast.Parsetree.signature_item)
                   t| Structure_item : (Astlib.Ast_500.Parsetree.structure_item,
                   Ocaml.Ast.Parsetree.structure_item)
                   t| List : ('a, 'b) t -> ('a list, 'b list) t| Pair : ('a, 'b) t * ('c, 'd) t -> ('a * 'c, 'b * 'd) t