1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540openStdlib0moduleFrom=Ast_412moduleTo=Ast_411letreccopy_out_type_extension:Ast_412.Outcometree.out_type_extension->Ast_411.Outcometree.out_type_extension=fun{Ast_412.Outcometree.otyext_name=otyext_name;Ast_412.Outcometree.otyext_params=otyext_params;Ast_412.Outcometree.otyext_constructors=otyext_constructors;Ast_412.Outcometree.otyext_private=otyext_private}->{Ast_411.Outcometree.otyext_name=otyext_name;Ast_411.Outcometree.otyext_params=(List.map(funx->x)otyext_params);Ast_411.Outcometree.otyext_constructors=(List.map(funx->let(x0,x1,x2)=xin(x0,(List.mapcopy_out_typex1),(Option.mapcopy_out_typex2)))otyext_constructors);Ast_411.Outcometree.otyext_private=(copy_private_flagotyext_private)}andcopy_out_phrase:Ast_412.Outcometree.out_phrase->Ast_411.Outcometree.out_phrase=function|Ast_412.Outcometree.Ophr_eval(x0,x1)->Ast_411.Outcometree.Ophr_eval((copy_out_valuex0),(copy_out_typex1))|Ast_412.Outcometree.Ophr_signaturex0->Ast_411.Outcometree.Ophr_signature(List.map(funx->let(x0,x1)=xin((copy_out_sig_itemx0),(Option.mapcopy_out_valuex1)))x0)|Ast_412.Outcometree.Ophr_exceptionx0->Ast_411.Outcometree.Ophr_exception(let(x0,x1)=x0in(x0,(copy_out_valuex1)))andcopy_out_type_param:Ast_412.Outcometree.out_type_param->string*(bool*bool)=function(str,(v,inj))->(matchinjwith|Ast_412.Asttypes.NoInjectivity->()|Ast_412.Asttypes.Injective->(* ignoring [Injective] is not quite correct *)());letco,cn=matchvwith|Ast_412.Asttypes.Covariant->(true,false)|Ast_412.Asttypes.Contravariant->(false,true)|Ast_412.Asttypes.NoVariance->(false,false)instr,(co,cn)andcopy_out_sig_item:Ast_412.Outcometree.out_sig_item->Ast_411.Outcometree.out_sig_item=function|Ast_412.Outcometree.Osig_class(x0,x1,x2,x3,x4)->Ast_411.Outcometree.Osig_class(x0,x1,(List.mapcopy_out_type_paramx2),(copy_out_class_typex3),(copy_out_rec_statusx4))|Ast_412.Outcometree.Osig_class_type(x0,x1,x2,x3,x4)->Ast_411.Outcometree.Osig_class_type(x0,x1,(List.mapcopy_out_type_paramx2),(copy_out_class_typex3),(copy_out_rec_statusx4))|Ast_412.Outcometree.Osig_typext(x0,x1)->Ast_411.Outcometree.Osig_typext((copy_out_extension_constructorx0),(copy_out_ext_statusx1))|Ast_412.Outcometree.Osig_modtype(x0,x1)->Ast_411.Outcometree.Osig_modtype(x0,(copy_out_module_typex1))|Ast_412.Outcometree.Osig_module(x0,x1,x2)->Ast_411.Outcometree.Osig_module(x0,(copy_out_module_typex1),(copy_out_rec_statusx2))|Ast_412.Outcometree.Osig_type(x0,x1)->Ast_411.Outcometree.Osig_type((copy_out_type_declx0),(copy_out_rec_statusx1))|Ast_412.Outcometree.Osig_valuex0->Ast_411.Outcometree.Osig_value(copy_out_val_declx0)|Ast_412.Outcometree.Osig_ellipsis->Ast_411.Outcometree.Osig_ellipsisandcopy_out_val_decl:Ast_412.Outcometree.out_val_decl->Ast_411.Outcometree.out_val_decl=fun{Ast_412.Outcometree.oval_name=oval_name;Ast_412.Outcometree.oval_type=oval_type;Ast_412.Outcometree.oval_prims=oval_prims;Ast_412.Outcometree.oval_attributes=oval_attributes}->{Ast_411.Outcometree.oval_name=oval_name;Ast_411.Outcometree.oval_type=(copy_out_typeoval_type);Ast_411.Outcometree.oval_prims=(List.map(funx->x)oval_prims);Ast_411.Outcometree.oval_attributes=(List.mapcopy_out_attributeoval_attributes)}andcopy_out_type_decl:Ast_412.Outcometree.out_type_decl->Ast_411.Outcometree.out_type_decl=fun{Ast_412.Outcometree.otype_name=otype_name;Ast_412.Outcometree.otype_params=otype_params;Ast_412.Outcometree.otype_type=otype_type;Ast_412.Outcometree.otype_private=otype_private;Ast_412.Outcometree.otype_immediate=otype_immediate;Ast_412.Outcometree.otype_unboxed=otype_unboxed;Ast_412.Outcometree.otype_cstrs=otype_cstrs}->{Ast_411.Outcometree.otype_name=otype_name;Ast_411.Outcometree.otype_params=(List.mapcopy_out_type_paramotype_params);Ast_411.Outcometree.otype_type=(copy_out_typeotype_type);Ast_411.Outcometree.otype_private=(copy_private_flagotype_private);Ast_411.Outcometree.otype_immediate=(copy_Type_immediacy_totype_immediate);Ast_411.Outcometree.otype_unboxed=otype_unboxed;Ast_411.Outcometree.otype_cstrs=(List.map(funx->let(x0,x1)=xin((copy_out_typex0),(copy_out_typex1)))otype_cstrs)}andcopy_Type_immediacy_t:Ast_412.Type_immediacy.t->Ast_411.Type_immediacy.t=function|Ast_412.Type_immediacy.Unknown->Ast_411.Type_immediacy.Unknown|Ast_412.Type_immediacy.Always->Ast_411.Type_immediacy.Always|Ast_412.Type_immediacy.Always_on_64bits->Ast_411.Type_immediacy.Always_on_64bitsandcopy_out_module_type:Ast_412.Outcometree.out_module_type->Ast_411.Outcometree.out_module_type=function|Ast_412.Outcometree.Omty_abstract->Ast_411.Outcometree.Omty_abstract|Ast_412.Outcometree.Omty_functor(x0,x1)->Ast_411.Outcometree.Omty_functor((Option.map(funx->let(x0,x1)=xin((Option.map(funx->x)x0),(copy_out_module_typex1)))x0),(copy_out_module_typex1))|Ast_412.Outcometree.Omty_identx0->Ast_411.Outcometree.Omty_ident(copy_out_identx0)|Ast_412.Outcometree.Omty_signaturex0->Ast_411.Outcometree.Omty_signature(List.mapcopy_out_sig_itemx0)|Ast_412.Outcometree.Omty_aliasx0->Ast_411.Outcometree.Omty_alias(copy_out_identx0)andcopy_out_ext_status:Ast_412.Outcometree.out_ext_status->Ast_411.Outcometree.out_ext_status=function|Ast_412.Outcometree.Oext_first->Ast_411.Outcometree.Oext_first|Ast_412.Outcometree.Oext_next->Ast_411.Outcometree.Oext_next|Ast_412.Outcometree.Oext_exception->Ast_411.Outcometree.Oext_exceptionandcopy_out_extension_constructor:Ast_412.Outcometree.out_extension_constructor->Ast_411.Outcometree.out_extension_constructor=fun{Ast_412.Outcometree.oext_name=oext_name;Ast_412.Outcometree.oext_type_name=oext_type_name;Ast_412.Outcometree.oext_type_params=oext_type_params;Ast_412.Outcometree.oext_args=oext_args;Ast_412.Outcometree.oext_ret_type=oext_ret_type;Ast_412.Outcometree.oext_private=oext_private}->{Ast_411.Outcometree.oext_name=oext_name;Ast_411.Outcometree.oext_type_name=oext_type_name;Ast_411.Outcometree.oext_type_params=(List.map(funx->x)oext_type_params);Ast_411.Outcometree.oext_args=(List.mapcopy_out_typeoext_args);Ast_411.Outcometree.oext_ret_type=(Option.mapcopy_out_typeoext_ret_type);Ast_411.Outcometree.oext_private=(copy_private_flagoext_private)}andcopy_out_rec_status:Ast_412.Outcometree.out_rec_status->Ast_411.Outcometree.out_rec_status=function|Ast_412.Outcometree.Orec_not->Ast_411.Outcometree.Orec_not|Ast_412.Outcometree.Orec_first->Ast_411.Outcometree.Orec_first|Ast_412.Outcometree.Orec_next->Ast_411.Outcometree.Orec_nextandcopy_out_class_type:Ast_412.Outcometree.out_class_type->Ast_411.Outcometree.out_class_type=function|Ast_412.Outcometree.Octy_constr(x0,x1)->Ast_411.Outcometree.Octy_constr((copy_out_identx0),(List.mapcopy_out_typex1))|Ast_412.Outcometree.Octy_arrow(x0,x1,x2)->Ast_411.Outcometree.Octy_arrow(x0,(copy_out_typex1),(copy_out_class_typex2))|Ast_412.Outcometree.Octy_signature(x0,x1)->Ast_411.Outcometree.Octy_signature((Option.mapcopy_out_typex0),(List.mapcopy_out_class_sig_itemx1))andcopy_out_class_sig_item:Ast_412.Outcometree.out_class_sig_item->Ast_411.Outcometree.out_class_sig_item=function|Ast_412.Outcometree.Ocsg_constraint(x0,x1)->Ast_411.Outcometree.Ocsg_constraint((copy_out_typex0),(copy_out_typex1))|Ast_412.Outcometree.Ocsg_method(x0,x1,x2,x3)->Ast_411.Outcometree.Ocsg_method(x0,x1,x2,(copy_out_typex3))|Ast_412.Outcometree.Ocsg_value(x0,x1,x2,x3)->Ast_411.Outcometree.Ocsg_value(x0,x1,x2,(copy_out_typex3))andcopy_out_type:Ast_412.Outcometree.out_type->Ast_411.Outcometree.out_type=function|Ast_412.Outcometree.Otyp_abstract->Ast_411.Outcometree.Otyp_abstract|Ast_412.Outcometree.Otyp_open->Ast_411.Outcometree.Otyp_open|Ast_412.Outcometree.Otyp_alias(x0,x1)->Ast_411.Outcometree.Otyp_alias((copy_out_typex0),x1)|Ast_412.Outcometree.Otyp_arrow(x0,x1,x2)->Ast_411.Outcometree.Otyp_arrow(x0,(copy_out_typex1),(copy_out_typex2))|Ast_412.Outcometree.Otyp_class(x0,x1,x2)->Ast_411.Outcometree.Otyp_class(x0,(copy_out_identx1),(List.mapcopy_out_typex2))|Ast_412.Outcometree.Otyp_constr(x0,x1)->Ast_411.Outcometree.Otyp_constr((copy_out_identx0),(List.mapcopy_out_typex1))|Ast_412.Outcometree.Otyp_manifest(x0,x1)->Ast_411.Outcometree.Otyp_manifest((copy_out_typex0),(copy_out_typex1))|Ast_412.Outcometree.Otyp_object(x0,x1)->Ast_411.Outcometree.Otyp_object((List.map(funx->let(x0,x1)=xin(x0,(copy_out_typex1)))x0),(Option.map(funx->x)x1))|Ast_412.Outcometree.Otyp_recordx0->Ast_411.Outcometree.Otyp_record(List.map(funx->let(x0,x1,x2)=xin(x0,x1,(copy_out_typex2)))x0)|Ast_412.Outcometree.Otyp_stuffx0->Ast_411.Outcometree.Otyp_stuffx0|Ast_412.Outcometree.Otyp_sumx0->Ast_411.Outcometree.Otyp_sum(List.map(funx->let(x0,x1,x2)=xin(x0,(List.mapcopy_out_typex1),(Option.mapcopy_out_typex2)))x0)|Ast_412.Outcometree.Otyp_tuplex0->Ast_411.Outcometree.Otyp_tuple(List.mapcopy_out_typex0)|Ast_412.Outcometree.Otyp_var(x0,x1)->Ast_411.Outcometree.Otyp_var(x0,x1)|Ast_412.Outcometree.Otyp_variant(x0,x1,x2,x3)->Ast_411.Outcometree.Otyp_variant(x0,(copy_out_variantx1),x2,(Option.map(funx->List.map(funx->x)x)x3))|Ast_412.Outcometree.Otyp_poly(x0,x1)->Ast_411.Outcometree.Otyp_poly((List.map(funx->x)x0),(copy_out_typex1))|Ast_412.Outcometree.Otyp_module(x0,x1,x2)->Ast_411.Outcometree.Otyp_module((copy_out_identx0),(List.map(funx->x)x1),(List.mapcopy_out_typex2))|Ast_412.Outcometree.Otyp_attribute(x0,x1)->Ast_411.Outcometree.Otyp_attribute((copy_out_typex0),(copy_out_attributex1))andcopy_out_attribute:Ast_412.Outcometree.out_attribute->Ast_411.Outcometree.out_attribute=fun{Ast_412.Outcometree.oattr_name=oattr_name}->{Ast_411.Outcometree.oattr_name=oattr_name}andcopy_out_variant:Ast_412.Outcometree.out_variant->Ast_411.Outcometree.out_variant=function|Ast_412.Outcometree.Ovar_fieldsx0->Ast_411.Outcometree.Ovar_fields(List.map(funx->let(x0,x1,x2)=xin(x0,x1,(List.mapcopy_out_typex2)))x0)|Ast_412.Outcometree.Ovar_typx0->Ast_411.Outcometree.Ovar_typ(copy_out_typex0)andcopy_out_value:Ast_412.Outcometree.out_value->Ast_411.Outcometree.out_value=function|Ast_412.Outcometree.Oval_arrayx0->Ast_411.Outcometree.Oval_array(List.mapcopy_out_valuex0)|Ast_412.Outcometree.Oval_charx0->Ast_411.Outcometree.Oval_charx0|Ast_412.Outcometree.Oval_constr(x0,x1)->Ast_411.Outcometree.Oval_constr((copy_out_identx0),(List.mapcopy_out_valuex1))|Ast_412.Outcometree.Oval_ellipsis->Ast_411.Outcometree.Oval_ellipsis|Ast_412.Outcometree.Oval_floatx0->Ast_411.Outcometree.Oval_floatx0|Ast_412.Outcometree.Oval_intx0->Ast_411.Outcometree.Oval_intx0|Ast_412.Outcometree.Oval_int32x0->Ast_411.Outcometree.Oval_int32x0|Ast_412.Outcometree.Oval_int64x0->Ast_411.Outcometree.Oval_int64x0|Ast_412.Outcometree.Oval_nativeintx0->Ast_411.Outcometree.Oval_nativeintx0|Ast_412.Outcometree.Oval_listx0->Ast_411.Outcometree.Oval_list(List.mapcopy_out_valuex0)|Ast_412.Outcometree.Oval_printerx0->Ast_411.Outcometree.Oval_printerx0|Ast_412.Outcometree.Oval_recordx0->Ast_411.Outcometree.Oval_record(List.map(funx->let(x0,x1)=xin((copy_out_identx0),(copy_out_valuex1)))x0)|Ast_412.Outcometree.Oval_string(x0,x1,x2)->Ast_411.Outcometree.Oval_string(x0,x1,(copy_out_stringx2))|Ast_412.Outcometree.Oval_stuffx0->Ast_411.Outcometree.Oval_stuffx0|Ast_412.Outcometree.Oval_tuplex0->Ast_411.Outcometree.Oval_tuple(List.mapcopy_out_valuex0)|Ast_412.Outcometree.Oval_variant(x0,x1)->Ast_411.Outcometree.Oval_variant(x0,(Option.mapcopy_out_valuex1))andcopy_out_string:Ast_412.Outcometree.out_string->Ast_411.Outcometree.out_string=function|Ast_412.Outcometree.Ostr_string->Ast_411.Outcometree.Ostr_string|Ast_412.Outcometree.Ostr_bytes->Ast_411.Outcometree.Ostr_bytesandcopy_out_ident:Ast_412.Outcometree.out_ident->Ast_411.Outcometree.out_ident=function|Ast_412.Outcometree.Oide_apply(x0,x1)->Ast_411.Outcometree.Oide_apply((copy_out_identx0),(copy_out_identx1))|Ast_412.Outcometree.Oide_dot(x0,x1)->Ast_411.Outcometree.Oide_dot((copy_out_identx0),x1)|Ast_412.Outcometree.Oide_identx0->Ast_411.Outcometree.Oide_ident(copy_out_namex0)andcopy_out_name:Ast_412.Outcometree.out_name->Ast_411.Outcometree.out_name=fun{Ast_412.Outcometree.printed_name=printed_name}->{Ast_411.Outcometree.printed_name=printed_name}andcopy_toplevel_phrase:Ast_412.Parsetree.toplevel_phrase->Ast_411.Parsetree.toplevel_phrase=function|Ast_412.Parsetree.Ptop_defx0->Ast_411.Parsetree.Ptop_def(copy_structurex0)|Ast_412.Parsetree.Ptop_dirx0->Ast_411.Parsetree.Ptop_dir(copy_toplevel_directivex0)andcopy_toplevel_directive:Ast_412.Parsetree.toplevel_directive->Ast_411.Parsetree.toplevel_directive=fun{Ast_412.Parsetree.pdir_name=pdir_name;Ast_412.Parsetree.pdir_arg=pdir_arg;Ast_412.Parsetree.pdir_loc=pdir_loc}->{Ast_411.Parsetree.pdir_name=(copy_loc(funx->x)pdir_name);Ast_411.Parsetree.pdir_arg=(Option.mapcopy_directive_argumentpdir_arg);Ast_411.Parsetree.pdir_loc=(copy_locationpdir_loc)}andcopy_directive_argument:Ast_412.Parsetree.directive_argument->Ast_411.Parsetree.directive_argument=fun{Ast_412.Parsetree.pdira_desc=pdira_desc;Ast_412.Parsetree.pdira_loc=pdira_loc}->{Ast_411.Parsetree.pdira_desc=(copy_directive_argument_descpdira_desc);Ast_411.Parsetree.pdira_loc=(copy_locationpdira_loc)}andcopy_directive_argument_desc:Ast_412.Parsetree.directive_argument_desc->Ast_411.Parsetree.directive_argument_desc=function|Ast_412.Parsetree.Pdir_stringx0->Ast_411.Parsetree.Pdir_stringx0|Ast_412.Parsetree.Pdir_int(x0,x1)->Ast_411.Parsetree.Pdir_int(x0,(Option.map(funx->x)x1))|Ast_412.Parsetree.Pdir_identx0->Ast_411.Parsetree.Pdir_ident(copy_Longident_tx0)|Ast_412.Parsetree.Pdir_boolx0->Ast_411.Parsetree.Pdir_boolx0andcopy_expression:Ast_412.Parsetree.expression->Ast_411.Parsetree.expression=fun{Ast_412.Parsetree.pexp_desc=pexp_desc;Ast_412.Parsetree.pexp_loc=pexp_loc;Ast_412.Parsetree.pexp_loc_stack=pexp_loc_stack;Ast_412.Parsetree.pexp_attributes=pexp_attributes}->{Ast_411.Parsetree.pexp_desc=(copy_expression_descpexp_desc);Ast_411.Parsetree.pexp_loc=(copy_locationpexp_loc);Ast_411.Parsetree.pexp_loc_stack=(copy_location_stackpexp_loc_stack);Ast_411.Parsetree.pexp_attributes=(copy_attributespexp_attributes)}andcopy_exprx=copy_expressionxandcopy_expression_desc:Ast_412.Parsetree.expression_desc->Ast_411.Parsetree.expression_desc=function|Ast_412.Parsetree.Pexp_identx0->Ast_411.Parsetree.Pexp_ident(copy_loccopy_Longident_tx0)|Ast_412.Parsetree.Pexp_constantx0->Ast_411.Parsetree.Pexp_constant(copy_constantx0)|Ast_412.Parsetree.Pexp_let(x0,x1,x2)->Ast_411.Parsetree.Pexp_let((copy_rec_flagx0),(List.mapcopy_value_bindingx1),(copy_expressionx2))|Ast_412.Parsetree.Pexp_functionx0->Ast_411.Parsetree.Pexp_function(List.mapcopy_casex0)|Ast_412.Parsetree.Pexp_fun(x0,x1,x2,x3)->Ast_411.Parsetree.Pexp_fun((copy_arg_labelx0),(Option.mapcopy_expressionx1),(copy_patternx2),(copy_expressionx3))|Ast_412.Parsetree.Pexp_apply(x0,x1)->Ast_411.Parsetree.Pexp_apply((copy_expressionx0),(List.map(funx->let(x0,x1)=xin((copy_arg_labelx0),(copy_expressionx1)))x1))|Ast_412.Parsetree.Pexp_match(x0,x1)->Ast_411.Parsetree.Pexp_match((copy_expressionx0),(List.mapcopy_casex1))|Ast_412.Parsetree.Pexp_try(x0,x1)->Ast_411.Parsetree.Pexp_try((copy_expressionx0),(List.mapcopy_casex1))|Ast_412.Parsetree.Pexp_tuplex0->Ast_411.Parsetree.Pexp_tuple(List.mapcopy_expressionx0)|Ast_412.Parsetree.Pexp_construct(x0,x1)->Ast_411.Parsetree.Pexp_construct((copy_loccopy_Longident_tx0),(Option.mapcopy_expressionx1))|Ast_412.Parsetree.Pexp_variant(x0,x1)->Ast_411.Parsetree.Pexp_variant((copy_labelx0),(Option.mapcopy_expressionx1))|Ast_412.Parsetree.Pexp_record(x0,x1)->Ast_411.Parsetree.Pexp_record((List.map(funx->let(x0,x1)=xin((copy_loccopy_Longident_tx0),(copy_expressionx1)))x0),(Option.mapcopy_expressionx1))|Ast_412.Parsetree.Pexp_field(x0,x1)->Ast_411.Parsetree.Pexp_field((copy_expressionx0),(copy_loccopy_Longident_tx1))|Ast_412.Parsetree.Pexp_setfield(x0,x1,x2)->Ast_411.Parsetree.Pexp_setfield((copy_expressionx0),(copy_loccopy_Longident_tx1),(copy_expressionx2))|Ast_412.Parsetree.Pexp_arrayx0->Ast_411.Parsetree.Pexp_array(List.mapcopy_expressionx0)|Ast_412.Parsetree.Pexp_ifthenelse(x0,x1,x2)->Ast_411.Parsetree.Pexp_ifthenelse((copy_expressionx0),(copy_expressionx1),(Option.mapcopy_expressionx2))|Ast_412.Parsetree.Pexp_sequence(x0,x1)->Ast_411.Parsetree.Pexp_sequence((copy_expressionx0),(copy_expressionx1))|Ast_412.Parsetree.Pexp_while(x0,x1)->Ast_411.Parsetree.Pexp_while((copy_expressionx0),(copy_expressionx1))|Ast_412.Parsetree.Pexp_for(x0,x1,x2,x3,x4)->Ast_411.Parsetree.Pexp_for((copy_patternx0),(copy_expressionx1),(copy_expressionx2),(copy_direction_flagx3),(copy_expressionx4))|Ast_412.Parsetree.Pexp_constraint(x0,x1)->Ast_411.Parsetree.Pexp_constraint((copy_expressionx0),(copy_core_typex1))|Ast_412.Parsetree.Pexp_coerce(x0,x1,x2)->Ast_411.Parsetree.Pexp_coerce((copy_expressionx0),(Option.mapcopy_core_typex1),(copy_core_typex2))|Ast_412.Parsetree.Pexp_send(x0,x1)->Ast_411.Parsetree.Pexp_send((copy_expressionx0),(copy_loccopy_labelx1))|Ast_412.Parsetree.Pexp_newx0->Ast_411.Parsetree.Pexp_new(copy_loccopy_Longident_tx0)|Ast_412.Parsetree.Pexp_setinstvar(x0,x1)->Ast_411.Parsetree.Pexp_setinstvar((copy_loccopy_labelx0),(copy_expressionx1))|Ast_412.Parsetree.Pexp_overridex0->Ast_411.Parsetree.Pexp_override(List.map(funx->let(x0,x1)=xin((copy_loccopy_labelx0),(copy_expressionx1)))x0)|Ast_412.Parsetree.Pexp_letmodule(x0,x1,x2)->Ast_411.Parsetree.Pexp_letmodule((copy_loc(funx->Option.map(funx->x)x)x0),(copy_module_exprx1),(copy_expressionx2))|Ast_412.Parsetree.Pexp_letexception(x0,x1)->Ast_411.Parsetree.Pexp_letexception((copy_extension_constructorx0),(copy_expressionx1))|Ast_412.Parsetree.Pexp_assertx0->Ast_411.Parsetree.Pexp_assert(copy_expressionx0)|Ast_412.Parsetree.Pexp_lazyx0->Ast_411.Parsetree.Pexp_lazy(copy_expressionx0)|Ast_412.Parsetree.Pexp_poly(x0,x1)->Ast_411.Parsetree.Pexp_poly((copy_expressionx0),(Option.mapcopy_core_typex1))|Ast_412.Parsetree.Pexp_objectx0->Ast_411.Parsetree.Pexp_object(copy_class_structurex0)|Ast_412.Parsetree.Pexp_newtype(x0,x1)->Ast_411.Parsetree.Pexp_newtype((copy_loc(funx->x)x0),(copy_expressionx1))|Ast_412.Parsetree.Pexp_packx0->Ast_411.Parsetree.Pexp_pack(copy_module_exprx0)|Ast_412.Parsetree.Pexp_open(x0,x1)->Ast_411.Parsetree.Pexp_open((copy_open_declarationx0),(copy_expressionx1))|Ast_412.Parsetree.Pexp_letopx0->Ast_411.Parsetree.Pexp_letop(copy_letopx0)|Ast_412.Parsetree.Pexp_extensionx0->Ast_411.Parsetree.Pexp_extension(copy_extensionx0)|Ast_412.Parsetree.Pexp_unreachable->Ast_411.Parsetree.Pexp_unreachableandcopy_letop:Ast_412.Parsetree.letop->Ast_411.Parsetree.letop=fun{Ast_412.Parsetree.let_=let_;Ast_412.Parsetree.ands=ands;Ast_412.Parsetree.body=body}->{Ast_411.Parsetree.let_=(copy_binding_oplet_);Ast_411.Parsetree.ands=(List.mapcopy_binding_opands);Ast_411.Parsetree.body=(copy_expressionbody)}andcopy_binding_op:Ast_412.Parsetree.binding_op->Ast_411.Parsetree.binding_op=fun{Ast_412.Parsetree.pbop_op=pbop_op;Ast_412.Parsetree.pbop_pat=pbop_pat;Ast_412.Parsetree.pbop_exp=pbop_exp;Ast_412.Parsetree.pbop_loc=pbop_loc}->{Ast_411.Parsetree.pbop_op=(copy_loc(funx->x)pbop_op);Ast_411.Parsetree.pbop_pat=(copy_patternpbop_pat);Ast_411.Parsetree.pbop_exp=(copy_expressionpbop_exp);Ast_411.Parsetree.pbop_loc=(copy_locationpbop_loc)}andcopy_direction_flag:Ast_412.Asttypes.direction_flag->Ast_411.Asttypes.direction_flag=function|Ast_412.Asttypes.Upto->Ast_411.Asttypes.Upto|Ast_412.Asttypes.Downto->Ast_411.Asttypes.Downtoandcopy_cases:Ast_412.Parsetree.caselist->Ast_411.Parsetree.caselist=funx->List.mapcopy_casexandcopy_case:Ast_412.Parsetree.case->Ast_411.Parsetree.case=fun{Ast_412.Parsetree.pc_lhs=pc_lhs;Ast_412.Parsetree.pc_guard=pc_guard;Ast_412.Parsetree.pc_rhs=pc_rhs}->{Ast_411.Parsetree.pc_lhs=(copy_patternpc_lhs);Ast_411.Parsetree.pc_guard=(Option.mapcopy_expressionpc_guard);Ast_411.Parsetree.pc_rhs=(copy_expressionpc_rhs)}andcopy_value_binding:Ast_412.Parsetree.value_binding->Ast_411.Parsetree.value_binding=fun{Ast_412.Parsetree.pvb_pat=pvb_pat;Ast_412.Parsetree.pvb_expr=pvb_expr;Ast_412.Parsetree.pvb_attributes=pvb_attributes;Ast_412.Parsetree.pvb_loc=pvb_loc}->{Ast_411.Parsetree.pvb_pat=(copy_patternpvb_pat);Ast_411.Parsetree.pvb_expr=(copy_expressionpvb_expr);Ast_411.Parsetree.pvb_attributes=(copy_attributespvb_attributes);Ast_411.Parsetree.pvb_loc=(copy_locationpvb_loc)}andcopy_pattern:Ast_412.Parsetree.pattern->Ast_411.Parsetree.pattern=fun{Ast_412.Parsetree.ppat_desc=ppat_desc;Ast_412.Parsetree.ppat_loc=ppat_loc;Ast_412.Parsetree.ppat_loc_stack=ppat_loc_stack;Ast_412.Parsetree.ppat_attributes=ppat_attributes}->{Ast_411.Parsetree.ppat_desc=(copy_pattern_descppat_desc);Ast_411.Parsetree.ppat_loc=(copy_locationppat_loc);Ast_411.Parsetree.ppat_loc_stack=(copy_location_stackppat_loc_stack);Ast_411.Parsetree.ppat_attributes=(copy_attributesppat_attributes)}andcopy_patx=copy_patternxandcopy_pattern_desc:Ast_412.Parsetree.pattern_desc->Ast_411.Parsetree.pattern_desc=function|Ast_412.Parsetree.Ppat_any->Ast_411.Parsetree.Ppat_any|Ast_412.Parsetree.Ppat_varx0->Ast_411.Parsetree.Ppat_var(copy_loc(funx->x)x0)|Ast_412.Parsetree.Ppat_alias(x0,x1)->Ast_411.Parsetree.Ppat_alias((copy_patternx0),(copy_loc(funx->x)x1))|Ast_412.Parsetree.Ppat_constantx0->Ast_411.Parsetree.Ppat_constant(copy_constantx0)|Ast_412.Parsetree.Ppat_interval(x0,x1)->Ast_411.Parsetree.Ppat_interval((copy_constantx0),(copy_constantx1))|Ast_412.Parsetree.Ppat_tuplex0->Ast_411.Parsetree.Ppat_tuple(List.mapcopy_patternx0)|Ast_412.Parsetree.Ppat_construct(x0,x1)->Ast_411.Parsetree.Ppat_construct((copy_loccopy_Longident_tx0),(Option.mapcopy_patternx1))|Ast_412.Parsetree.Ppat_variant(x0,x1)->Ast_411.Parsetree.Ppat_variant((copy_labelx0),(Option.mapcopy_patternx1))|Ast_412.Parsetree.Ppat_record(x0,x1)->Ast_411.Parsetree.Ppat_record((List.map(funx->let(x0,x1)=xin((copy_loccopy_Longident_tx0),(copy_patternx1)))x0),(copy_closed_flagx1))|Ast_412.Parsetree.Ppat_arrayx0->Ast_411.Parsetree.Ppat_array(List.mapcopy_patternx0)|Ast_412.Parsetree.Ppat_or(x0,x1)->Ast_411.Parsetree.Ppat_or((copy_patternx0),(copy_patternx1))|Ast_412.Parsetree.Ppat_constraint(x0,x1)->Ast_411.Parsetree.Ppat_constraint((copy_patternx0),(copy_core_typex1))|Ast_412.Parsetree.Ppat_typex0->Ast_411.Parsetree.Ppat_type(copy_loccopy_Longident_tx0)|Ast_412.Parsetree.Ppat_lazyx0->Ast_411.Parsetree.Ppat_lazy(copy_patternx0)|Ast_412.Parsetree.Ppat_unpackx0->Ast_411.Parsetree.Ppat_unpack(copy_loc(funx->Option.map(funx->x)x)x0)|Ast_412.Parsetree.Ppat_exceptionx0->Ast_411.Parsetree.Ppat_exception(copy_patternx0)|Ast_412.Parsetree.Ppat_extensionx0->Ast_411.Parsetree.Ppat_extension(copy_extensionx0)|Ast_412.Parsetree.Ppat_open(x0,x1)->Ast_411.Parsetree.Ppat_open((copy_loccopy_Longident_tx0),(copy_patternx1))andcopy_core_type:Ast_412.Parsetree.core_type->Ast_411.Parsetree.core_type=fun{Ast_412.Parsetree.ptyp_desc=ptyp_desc;Ast_412.Parsetree.ptyp_loc=ptyp_loc;Ast_412.Parsetree.ptyp_loc_stack=ptyp_loc_stack;Ast_412.Parsetree.ptyp_attributes=ptyp_attributes}->{Ast_411.Parsetree.ptyp_desc=(copy_core_type_descptyp_desc);Ast_411.Parsetree.ptyp_loc=(copy_locationptyp_loc);Ast_411.Parsetree.ptyp_loc_stack=(copy_location_stackptyp_loc_stack);Ast_411.Parsetree.ptyp_attributes=(copy_attributesptyp_attributes)}andcopy_typx=copy_core_typexandcopy_location_stack:Ast_412.Parsetree.location_stack->Ast_411.Parsetree.location_stack=funx->List.mapcopy_locationxandcopy_core_type_desc:Ast_412.Parsetree.core_type_desc->Ast_411.Parsetree.core_type_desc=function|Ast_412.Parsetree.Ptyp_any->Ast_411.Parsetree.Ptyp_any|Ast_412.Parsetree.Ptyp_varx0->Ast_411.Parsetree.Ptyp_varx0|Ast_412.Parsetree.Ptyp_arrow(x0,x1,x2)->Ast_411.Parsetree.Ptyp_arrow((copy_arg_labelx0),(copy_core_typex1),(copy_core_typex2))|Ast_412.Parsetree.Ptyp_tuplex0->Ast_411.Parsetree.Ptyp_tuple(List.mapcopy_core_typex0)|Ast_412.Parsetree.Ptyp_constr(x0,x1)->Ast_411.Parsetree.Ptyp_constr((copy_loccopy_Longident_tx0),(List.mapcopy_core_typex1))|Ast_412.Parsetree.Ptyp_object(x0,x1)->Ast_411.Parsetree.Ptyp_object((List.mapcopy_object_fieldx0),(copy_closed_flagx1))|Ast_412.Parsetree.Ptyp_class(x0,x1)->Ast_411.Parsetree.Ptyp_class((copy_loccopy_Longident_tx0),(List.mapcopy_core_typex1))|Ast_412.Parsetree.Ptyp_alias(x0,x1)->Ast_411.Parsetree.Ptyp_alias((copy_core_typex0),x1)|Ast_412.Parsetree.Ptyp_variant(x0,x1,x2)->Ast_411.Parsetree.Ptyp_variant((List.mapcopy_row_fieldx0),(copy_closed_flagx1),(Option.map(funx->List.mapcopy_labelx)x2))|Ast_412.Parsetree.Ptyp_poly(x0,x1)->Ast_411.Parsetree.Ptyp_poly((List.map(funx->copy_loc(funx->x)x)x0),(copy_core_typex1))|Ast_412.Parsetree.Ptyp_packagex0->Ast_411.Parsetree.Ptyp_package(copy_package_typex0)|Ast_412.Parsetree.Ptyp_extensionx0->Ast_411.Parsetree.Ptyp_extension(copy_extensionx0)andcopy_package_type:Ast_412.Parsetree.package_type->Ast_411.Parsetree.package_type=funx->let(x0,x1)=xin((copy_loccopy_Longident_tx0),(List.map(funx->let(x0,x1)=xin((copy_loccopy_Longident_tx0),(copy_core_typex1)))x1))andcopy_row_field:Ast_412.Parsetree.row_field->Ast_411.Parsetree.row_field=fun{Ast_412.Parsetree.prf_desc=prf_desc;Ast_412.Parsetree.prf_loc=prf_loc;Ast_412.Parsetree.prf_attributes=prf_attributes}->{Ast_411.Parsetree.prf_desc=(copy_row_field_descprf_desc);Ast_411.Parsetree.prf_loc=(copy_locationprf_loc);Ast_411.Parsetree.prf_attributes=(copy_attributesprf_attributes)}andcopy_row_field_desc:Ast_412.Parsetree.row_field_desc->Ast_411.Parsetree.row_field_desc=function|Ast_412.Parsetree.Rtag(x0,x1,x2)->Ast_411.Parsetree.Rtag((copy_loccopy_labelx0),x1,(List.mapcopy_core_typex2))|Ast_412.Parsetree.Rinheritx0->Ast_411.Parsetree.Rinherit(copy_core_typex0)andcopy_object_field:Ast_412.Parsetree.object_field->Ast_411.Parsetree.object_field=fun{Ast_412.Parsetree.pof_desc=pof_desc;Ast_412.Parsetree.pof_loc=pof_loc;Ast_412.Parsetree.pof_attributes=pof_attributes}->{Ast_411.Parsetree.pof_desc=(copy_object_field_descpof_desc);Ast_411.Parsetree.pof_loc=(copy_locationpof_loc);Ast_411.Parsetree.pof_attributes=(copy_attributespof_attributes)}andcopy_attributes:Ast_412.Parsetree.attributes->Ast_411.Parsetree.attributes=funx->List.mapcopy_attributexandcopy_attribute:Ast_412.Parsetree.attribute->Ast_411.Parsetree.attribute=fun{Ast_412.Parsetree.attr_name=attr_name;Ast_412.Parsetree.attr_payload=attr_payload;Ast_412.Parsetree.attr_loc=attr_loc}->{Ast_411.Parsetree.attr_name=(copy_loc(funx->x)attr_name);Ast_411.Parsetree.attr_payload=(copy_payloadattr_payload);Ast_411.Parsetree.attr_loc=(copy_locationattr_loc)}andcopy_payload:Ast_412.Parsetree.payload->Ast_411.Parsetree.payload=function|Ast_412.Parsetree.PStrx0->Ast_411.Parsetree.PStr(copy_structurex0)|Ast_412.Parsetree.PSigx0->Ast_411.Parsetree.PSig(copy_signaturex0)|Ast_412.Parsetree.PTypx0->Ast_411.Parsetree.PTyp(copy_core_typex0)|Ast_412.Parsetree.PPat(x0,x1)->Ast_411.Parsetree.PPat((copy_patternx0),(Option.mapcopy_expressionx1))andcopy_structure:Ast_412.Parsetree.structure->Ast_411.Parsetree.structure=funx->List.mapcopy_structure_itemxandcopy_structure_item:Ast_412.Parsetree.structure_item->Ast_411.Parsetree.structure_item=fun{Ast_412.Parsetree.pstr_desc=pstr_desc;Ast_412.Parsetree.pstr_loc=pstr_loc}->{Ast_411.Parsetree.pstr_desc=(copy_structure_item_descpstr_desc);Ast_411.Parsetree.pstr_loc=(copy_locationpstr_loc)}andcopy_structure_item_desc:Ast_412.Parsetree.structure_item_desc->Ast_411.Parsetree.structure_item_desc=function|Ast_412.Parsetree.Pstr_eval(x0,x1)->Ast_411.Parsetree.Pstr_eval((copy_expressionx0),(copy_attributesx1))|Ast_412.Parsetree.Pstr_value(x0,x1)->Ast_411.Parsetree.Pstr_value((copy_rec_flagx0),(List.mapcopy_value_bindingx1))|Ast_412.Parsetree.Pstr_primitivex0->Ast_411.Parsetree.Pstr_primitive(copy_value_descriptionx0)|Ast_412.Parsetree.Pstr_type(x0,x1)->Ast_411.Parsetree.Pstr_type((copy_rec_flagx0),(List.mapcopy_type_declarationx1))|Ast_412.Parsetree.Pstr_typextx0->Ast_411.Parsetree.Pstr_typext(copy_type_extensionx0)|Ast_412.Parsetree.Pstr_exceptionx0->Ast_411.Parsetree.Pstr_exception(copy_type_exceptionx0)|Ast_412.Parsetree.Pstr_modulex0->Ast_411.Parsetree.Pstr_module(copy_module_bindingx0)|Ast_412.Parsetree.Pstr_recmodulex0->Ast_411.Parsetree.Pstr_recmodule(List.mapcopy_module_bindingx0)|Ast_412.Parsetree.Pstr_modtypex0->Ast_411.Parsetree.Pstr_modtype(copy_module_type_declarationx0)|Ast_412.Parsetree.Pstr_openx0->Ast_411.Parsetree.Pstr_open(copy_open_declarationx0)|Ast_412.Parsetree.Pstr_classx0->Ast_411.Parsetree.Pstr_class(List.mapcopy_class_declarationx0)|Ast_412.Parsetree.Pstr_class_typex0->Ast_411.Parsetree.Pstr_class_type(List.mapcopy_class_type_declarationx0)|Ast_412.Parsetree.Pstr_includex0->Ast_411.Parsetree.Pstr_include(copy_include_declarationx0)|Ast_412.Parsetree.Pstr_attributex0->Ast_411.Parsetree.Pstr_attribute(copy_attributex0)|Ast_412.Parsetree.Pstr_extension(x0,x1)->Ast_411.Parsetree.Pstr_extension((copy_extensionx0),(copy_attributesx1))andcopy_include_declaration:Ast_412.Parsetree.include_declaration->Ast_411.Parsetree.include_declaration=funx->copy_include_infoscopy_module_exprxandcopy_class_declaration:Ast_412.Parsetree.class_declaration->Ast_411.Parsetree.class_declaration=funx->copy_class_infoscopy_class_exprxandcopy_class_expr:Ast_412.Parsetree.class_expr->Ast_411.Parsetree.class_expr=fun{Ast_412.Parsetree.pcl_desc=pcl_desc;Ast_412.Parsetree.pcl_loc=pcl_loc;Ast_412.Parsetree.pcl_attributes=pcl_attributes}->{Ast_411.Parsetree.pcl_desc=(copy_class_expr_descpcl_desc);Ast_411.Parsetree.pcl_loc=(copy_locationpcl_loc);Ast_411.Parsetree.pcl_attributes=(copy_attributespcl_attributes)}andcopy_class_expr_desc:Ast_412.Parsetree.class_expr_desc->Ast_411.Parsetree.class_expr_desc=function|Ast_412.Parsetree.Pcl_constr(x0,x1)->Ast_411.Parsetree.Pcl_constr((copy_loccopy_Longident_tx0),(List.mapcopy_core_typex1))|Ast_412.Parsetree.Pcl_structurex0->Ast_411.Parsetree.Pcl_structure(copy_class_structurex0)|Ast_412.Parsetree.Pcl_fun(x0,x1,x2,x3)->Ast_411.Parsetree.Pcl_fun((copy_arg_labelx0),(Option.mapcopy_expressionx1),(copy_patternx2),(copy_class_exprx3))|Ast_412.Parsetree.Pcl_apply(x0,x1)->Ast_411.Parsetree.Pcl_apply((copy_class_exprx0),(List.map(funx->let(x0,x1)=xin((copy_arg_labelx0),(copy_expressionx1)))x1))|Ast_412.Parsetree.Pcl_let(x0,x1,x2)->Ast_411.Parsetree.Pcl_let((copy_rec_flagx0),(List.mapcopy_value_bindingx1),(copy_class_exprx2))|Ast_412.Parsetree.Pcl_constraint(x0,x1)->Ast_411.Parsetree.Pcl_constraint((copy_class_exprx0),(copy_class_typex1))|Ast_412.Parsetree.Pcl_extensionx0->Ast_411.Parsetree.Pcl_extension(copy_extensionx0)|Ast_412.Parsetree.Pcl_open(x0,x1)->Ast_411.Parsetree.Pcl_open((copy_open_descriptionx0),(copy_class_exprx1))andcopy_class_structure:Ast_412.Parsetree.class_structure->Ast_411.Parsetree.class_structure=fun{Ast_412.Parsetree.pcstr_self=pcstr_self;Ast_412.Parsetree.pcstr_fields=pcstr_fields}->{Ast_411.Parsetree.pcstr_self=(copy_patternpcstr_self);Ast_411.Parsetree.pcstr_fields=(List.mapcopy_class_fieldpcstr_fields)}andcopy_class_field:Ast_412.Parsetree.class_field->Ast_411.Parsetree.class_field=fun{Ast_412.Parsetree.pcf_desc=pcf_desc;Ast_412.Parsetree.pcf_loc=pcf_loc;Ast_412.Parsetree.pcf_attributes=pcf_attributes}->{Ast_411.Parsetree.pcf_desc=(copy_class_field_descpcf_desc);Ast_411.Parsetree.pcf_loc=(copy_locationpcf_loc);Ast_411.Parsetree.pcf_attributes=(copy_attributespcf_attributes)}andcopy_class_field_desc:Ast_412.Parsetree.class_field_desc->Ast_411.Parsetree.class_field_desc=function|Ast_412.Parsetree.Pcf_inherit(x0,x1,x2)->Ast_411.Parsetree.Pcf_inherit((copy_override_flagx0),(copy_class_exprx1),(Option.map(funx->copy_loc(funx->x)x)x2))|Ast_412.Parsetree.Pcf_valx0->Ast_411.Parsetree.Pcf_val(let(x0,x1,x2)=x0in((copy_loccopy_labelx0),(copy_mutable_flagx1),(copy_class_field_kindx2)))|Ast_412.Parsetree.Pcf_methodx0->Ast_411.Parsetree.Pcf_method(let(x0,x1,x2)=x0in((copy_loccopy_labelx0),(copy_private_flagx1),(copy_class_field_kindx2)))|Ast_412.Parsetree.Pcf_constraintx0->Ast_411.Parsetree.Pcf_constraint(let(x0,x1)=x0in((copy_core_typex0),(copy_core_typex1)))|Ast_412.Parsetree.Pcf_initializerx0->Ast_411.Parsetree.Pcf_initializer(copy_expressionx0)|Ast_412.Parsetree.Pcf_attributex0->Ast_411.Parsetree.Pcf_attribute(copy_attributex0)|Ast_412.Parsetree.Pcf_extensionx0->Ast_411.Parsetree.Pcf_extension(copy_extensionx0)andcopy_class_field_kind:Ast_412.Parsetree.class_field_kind->Ast_411.Parsetree.class_field_kind=function|Ast_412.Parsetree.Cfk_virtualx0->Ast_411.Parsetree.Cfk_virtual(copy_core_typex0)|Ast_412.Parsetree.Cfk_concrete(x0,x1)->Ast_411.Parsetree.Cfk_concrete((copy_override_flagx0),(copy_expressionx1))andcopy_open_declaration:Ast_412.Parsetree.open_declaration->Ast_411.Parsetree.open_declaration=funx->copy_open_infoscopy_module_exprxandcopy_module_binding:Ast_412.Parsetree.module_binding->Ast_411.Parsetree.module_binding=fun{Ast_412.Parsetree.pmb_name=pmb_name;Ast_412.Parsetree.pmb_expr=pmb_expr;Ast_412.Parsetree.pmb_attributes=pmb_attributes;Ast_412.Parsetree.pmb_loc=pmb_loc}->{Ast_411.Parsetree.pmb_name=(copy_loc(funx->Option.map(funx->x)x)pmb_name);Ast_411.Parsetree.pmb_expr=(copy_module_exprpmb_expr);Ast_411.Parsetree.pmb_attributes=(copy_attributespmb_attributes);Ast_411.Parsetree.pmb_loc=(copy_locationpmb_loc)}andcopy_module_expr:Ast_412.Parsetree.module_expr->Ast_411.Parsetree.module_expr=fun{Ast_412.Parsetree.pmod_desc=pmod_desc;Ast_412.Parsetree.pmod_loc=pmod_loc;Ast_412.Parsetree.pmod_attributes=pmod_attributes}->{Ast_411.Parsetree.pmod_desc=(copy_module_expr_descpmod_desc);Ast_411.Parsetree.pmod_loc=(copy_locationpmod_loc);Ast_411.Parsetree.pmod_attributes=(copy_attributespmod_attributes)}andcopy_module_expr_desc:Ast_412.Parsetree.module_expr_desc->Ast_411.Parsetree.module_expr_desc=function|Ast_412.Parsetree.Pmod_identx0->Ast_411.Parsetree.Pmod_ident(copy_loccopy_Longident_tx0)|Ast_412.Parsetree.Pmod_structurex0->Ast_411.Parsetree.Pmod_structure(copy_structurex0)|Ast_412.Parsetree.Pmod_functor(x0,x1)->Ast_411.Parsetree.Pmod_functor((copy_functor_parameterx0),(copy_module_exprx1))|Ast_412.Parsetree.Pmod_apply(x0,x1)->Ast_411.Parsetree.Pmod_apply((copy_module_exprx0),(copy_module_exprx1))|Ast_412.Parsetree.Pmod_constraint(x0,x1)->Ast_411.Parsetree.Pmod_constraint((copy_module_exprx0),(copy_module_typex1))|Ast_412.Parsetree.Pmod_unpackx0->Ast_411.Parsetree.Pmod_unpack(copy_expressionx0)|Ast_412.Parsetree.Pmod_extensionx0->Ast_411.Parsetree.Pmod_extension(copy_extensionx0)andcopy_functor_parameter:Ast_412.Parsetree.functor_parameter->Ast_411.Parsetree.functor_parameter=function|Ast_412.Parsetree.Unit->Ast_411.Parsetree.Unit|Ast_412.Parsetree.Named(x0,x1)->Ast_411.Parsetree.Named((copy_loc(funx->Option.map(funx->x)x)x0),(copy_module_typex1))andcopy_module_type:Ast_412.Parsetree.module_type->Ast_411.Parsetree.module_type=fun{Ast_412.Parsetree.pmty_desc=pmty_desc;Ast_412.Parsetree.pmty_loc=pmty_loc;Ast_412.Parsetree.pmty_attributes=pmty_attributes}->{Ast_411.Parsetree.pmty_desc=(copy_module_type_descpmty_desc);Ast_411.Parsetree.pmty_loc=(copy_locationpmty_loc);Ast_411.Parsetree.pmty_attributes=(copy_attributespmty_attributes)}andcopy_module_type_desc:Ast_412.Parsetree.module_type_desc->Ast_411.Parsetree.module_type_desc=function|Ast_412.Parsetree.Pmty_identx0->Ast_411.Parsetree.Pmty_ident(copy_loccopy_Longident_tx0)|Ast_412.Parsetree.Pmty_signaturex0->Ast_411.Parsetree.Pmty_signature(copy_signaturex0)|Ast_412.Parsetree.Pmty_functor(x0,x1)->Ast_411.Parsetree.Pmty_functor((copy_functor_parameterx0),(copy_module_typex1))|Ast_412.Parsetree.Pmty_with(x0,x1)->Ast_411.Parsetree.Pmty_with((copy_module_typex0),(List.mapcopy_with_constraintx1))|Ast_412.Parsetree.Pmty_typeofx0->Ast_411.Parsetree.Pmty_typeof(copy_module_exprx0)|Ast_412.Parsetree.Pmty_extensionx0->Ast_411.Parsetree.Pmty_extension(copy_extensionx0)|Ast_412.Parsetree.Pmty_aliasx0->Ast_411.Parsetree.Pmty_alias(copy_loccopy_Longident_tx0)andcopy_with_constraint:Ast_412.Parsetree.with_constraint->Ast_411.Parsetree.with_constraint=function|Ast_412.Parsetree.Pwith_type(x0,x1)->Ast_411.Parsetree.Pwith_type((copy_loccopy_Longident_tx0),(copy_type_declarationx1))|Ast_412.Parsetree.Pwith_module(x0,x1)->Ast_411.Parsetree.Pwith_module((copy_loccopy_Longident_tx0),(copy_loccopy_Longident_tx1))|Ast_412.Parsetree.Pwith_typesubst(x0,x1)->Ast_411.Parsetree.Pwith_typesubst((copy_loccopy_Longident_tx0),(copy_type_declarationx1))|Ast_412.Parsetree.Pwith_modsubst(x0,x1)->Ast_411.Parsetree.Pwith_modsubst((copy_loccopy_Longident_tx0),(copy_loccopy_Longident_tx1))andcopy_signature:Ast_412.Parsetree.signature->Ast_411.Parsetree.signature=funx->List.mapcopy_signature_itemxandcopy_signature_item:Ast_412.Parsetree.signature_item->Ast_411.Parsetree.signature_item=fun{Ast_412.Parsetree.psig_desc=psig_desc;Ast_412.Parsetree.psig_loc=psig_loc}->{Ast_411.Parsetree.psig_desc=(copy_signature_item_descpsig_desc);Ast_411.Parsetree.psig_loc=(copy_locationpsig_loc)}andcopy_signature_item_desc:Ast_412.Parsetree.signature_item_desc->Ast_411.Parsetree.signature_item_desc=function|Ast_412.Parsetree.Psig_valuex0->Ast_411.Parsetree.Psig_value(copy_value_descriptionx0)|Ast_412.Parsetree.Psig_type(x0,x1)->Ast_411.Parsetree.Psig_type((copy_rec_flagx0),(List.mapcopy_type_declarationx1))|Ast_412.Parsetree.Psig_typesubstx0->Ast_411.Parsetree.Psig_typesubst(List.mapcopy_type_declarationx0)|Ast_412.Parsetree.Psig_typextx0->Ast_411.Parsetree.Psig_typext(copy_type_extensionx0)|Ast_412.Parsetree.Psig_exceptionx0->Ast_411.Parsetree.Psig_exception(copy_type_exceptionx0)|Ast_412.Parsetree.Psig_modulex0->Ast_411.Parsetree.Psig_module(copy_module_declarationx0)|Ast_412.Parsetree.Psig_modsubstx0->Ast_411.Parsetree.Psig_modsubst(copy_module_substitutionx0)|Ast_412.Parsetree.Psig_recmodulex0->Ast_411.Parsetree.Psig_recmodule(List.mapcopy_module_declarationx0)|Ast_412.Parsetree.Psig_modtypex0->Ast_411.Parsetree.Psig_modtype(copy_module_type_declarationx0)|Ast_412.Parsetree.Psig_openx0->Ast_411.Parsetree.Psig_open(copy_open_descriptionx0)|Ast_412.Parsetree.Psig_includex0->Ast_411.Parsetree.Psig_include(copy_include_descriptionx0)|Ast_412.Parsetree.Psig_classx0->Ast_411.Parsetree.Psig_class(List.mapcopy_class_descriptionx0)|Ast_412.Parsetree.Psig_class_typex0->Ast_411.Parsetree.Psig_class_type(List.mapcopy_class_type_declarationx0)|Ast_412.Parsetree.Psig_attributex0->Ast_411.Parsetree.Psig_attribute(copy_attributex0)|Ast_412.Parsetree.Psig_extension(x0,x1)->Ast_411.Parsetree.Psig_extension((copy_extensionx0),(copy_attributesx1))andcopy_class_type_declaration:Ast_412.Parsetree.class_type_declaration->Ast_411.Parsetree.class_type_declaration=funx->copy_class_infoscopy_class_typexandcopy_class_description:Ast_412.Parsetree.class_description->Ast_411.Parsetree.class_description=funx->copy_class_infoscopy_class_typexandcopy_class_type:Ast_412.Parsetree.class_type->Ast_411.Parsetree.class_type=fun{Ast_412.Parsetree.pcty_desc=pcty_desc;Ast_412.Parsetree.pcty_loc=pcty_loc;Ast_412.Parsetree.pcty_attributes=pcty_attributes}->{Ast_411.Parsetree.pcty_desc=(copy_class_type_descpcty_desc);Ast_411.Parsetree.pcty_loc=(copy_locationpcty_loc);Ast_411.Parsetree.pcty_attributes=(copy_attributespcty_attributes)}andcopy_class_type_desc:Ast_412.Parsetree.class_type_desc->Ast_411.Parsetree.class_type_desc=function|Ast_412.Parsetree.Pcty_constr(x0,x1)->Ast_411.Parsetree.Pcty_constr((copy_loccopy_Longident_tx0),(List.mapcopy_core_typex1))|Ast_412.Parsetree.Pcty_signaturex0->Ast_411.Parsetree.Pcty_signature(copy_class_signaturex0)|Ast_412.Parsetree.Pcty_arrow(x0,x1,x2)->Ast_411.Parsetree.Pcty_arrow((copy_arg_labelx0),(copy_core_typex1),(copy_class_typex2))|Ast_412.Parsetree.Pcty_extensionx0->Ast_411.Parsetree.Pcty_extension(copy_extensionx0)|Ast_412.Parsetree.Pcty_open(x0,x1)->Ast_411.Parsetree.Pcty_open((copy_open_descriptionx0),(copy_class_typex1))andcopy_class_signature:Ast_412.Parsetree.class_signature->Ast_411.Parsetree.class_signature=fun{Ast_412.Parsetree.pcsig_self=pcsig_self;Ast_412.Parsetree.pcsig_fields=pcsig_fields}->{Ast_411.Parsetree.pcsig_self=(copy_core_typepcsig_self);Ast_411.Parsetree.pcsig_fields=(List.mapcopy_class_type_fieldpcsig_fields)}andcopy_class_type_field:Ast_412.Parsetree.class_type_field->Ast_411.Parsetree.class_type_field=fun{Ast_412.Parsetree.pctf_desc=pctf_desc;Ast_412.Parsetree.pctf_loc=pctf_loc;Ast_412.Parsetree.pctf_attributes=pctf_attributes}->{Ast_411.Parsetree.pctf_desc=(copy_class_type_field_descpctf_desc);Ast_411.Parsetree.pctf_loc=(copy_locationpctf_loc);Ast_411.Parsetree.pctf_attributes=(copy_attributespctf_attributes)}andcopy_class_type_field_desc:Ast_412.Parsetree.class_type_field_desc->Ast_411.Parsetree.class_type_field_desc=function|Ast_412.Parsetree.Pctf_inheritx0->Ast_411.Parsetree.Pctf_inherit(copy_class_typex0)|Ast_412.Parsetree.Pctf_valx0->Ast_411.Parsetree.Pctf_val(let(x0,x1,x2,x3)=x0in((copy_loccopy_labelx0),(copy_mutable_flagx1),(copy_virtual_flagx2),(copy_core_typex3)))|Ast_412.Parsetree.Pctf_methodx0->Ast_411.Parsetree.Pctf_method(let(x0,x1,x2,x3)=x0in((copy_loccopy_labelx0),(copy_private_flagx1),(copy_virtual_flagx2),(copy_core_typex3)))|Ast_412.Parsetree.Pctf_constraintx0->Ast_411.Parsetree.Pctf_constraint(let(x0,x1)=x0in((copy_core_typex0),(copy_core_typex1)))|Ast_412.Parsetree.Pctf_attributex0->Ast_411.Parsetree.Pctf_attribute(copy_attributex0)|Ast_412.Parsetree.Pctf_extensionx0->Ast_411.Parsetree.Pctf_extension(copy_extensionx0)andcopy_extension:Ast_412.Parsetree.extension->Ast_411.Parsetree.extension=funx->let(x0,x1)=xin((copy_loc(funx->x)x0),(copy_payloadx1))andcopy_class_infos:'f0'g0.('f0->'g0)->'f0Ast_412.Parsetree.class_infos->'g0Ast_411.Parsetree.class_infos=funf0->fun{Ast_412.Parsetree.pci_virt=pci_virt;Ast_412.Parsetree.pci_params=pci_params;Ast_412.Parsetree.pci_name=pci_name;Ast_412.Parsetree.pci_expr=pci_expr;Ast_412.Parsetree.pci_loc=pci_loc;Ast_412.Parsetree.pci_attributes=pci_attributes}->{Ast_411.Parsetree.pci_virt=(copy_virtual_flagpci_virt);Ast_411.Parsetree.pci_params=(List.map(funx->let(x0,x1)=xin((copy_core_typex0),(let(x0,_)=x1in(copy_variancex0))))pci_params);Ast_411.Parsetree.pci_name=(copy_loc(funx->x)pci_name);Ast_411.Parsetree.pci_expr=(f0pci_expr);Ast_411.Parsetree.pci_loc=(copy_locationpci_loc);Ast_411.Parsetree.pci_attributes=(copy_attributespci_attributes)}andcopy_virtual_flag:Ast_412.Asttypes.virtual_flag->Ast_411.Asttypes.virtual_flag=function|Ast_412.Asttypes.Virtual->Ast_411.Asttypes.Virtual|Ast_412.Asttypes.Concrete->Ast_411.Asttypes.Concreteandcopy_include_description:Ast_412.Parsetree.include_description->Ast_411.Parsetree.include_description=funx->copy_include_infoscopy_module_typexandcopy_include_infos:'f0'g0.('f0->'g0)->'f0Ast_412.Parsetree.include_infos->'g0Ast_411.Parsetree.include_infos=funf0->fun{Ast_412.Parsetree.pincl_mod=pincl_mod;Ast_412.Parsetree.pincl_loc=pincl_loc;Ast_412.Parsetree.pincl_attributes=pincl_attributes}->{Ast_411.Parsetree.pincl_mod=(f0pincl_mod);Ast_411.Parsetree.pincl_loc=(copy_locationpincl_loc);Ast_411.Parsetree.pincl_attributes=(copy_attributespincl_attributes)}andcopy_open_description:Ast_412.Parsetree.open_description->Ast_411.Parsetree.open_description=funx->copy_open_infos(funx->copy_loccopy_Longident_tx)xandcopy_open_infos:'f0'g0.('f0->'g0)->'f0Ast_412.Parsetree.open_infos->'g0Ast_411.Parsetree.open_infos=funf0->fun{Ast_412.Parsetree.popen_expr=popen_expr;Ast_412.Parsetree.popen_override=popen_override;Ast_412.Parsetree.popen_loc=popen_loc;Ast_412.Parsetree.popen_attributes=popen_attributes}->{Ast_411.Parsetree.popen_expr=(f0popen_expr);Ast_411.Parsetree.popen_override=(copy_override_flagpopen_override);Ast_411.Parsetree.popen_loc=(copy_locationpopen_loc);Ast_411.Parsetree.popen_attributes=(copy_attributespopen_attributes)}andcopy_override_flag:Ast_412.Asttypes.override_flag->Ast_411.Asttypes.override_flag=function|Ast_412.Asttypes.Override->Ast_411.Asttypes.Override|Ast_412.Asttypes.Fresh->Ast_411.Asttypes.Freshandcopy_module_type_declaration:Ast_412.Parsetree.module_type_declaration->Ast_411.Parsetree.module_type_declaration=fun{Ast_412.Parsetree.pmtd_name=pmtd_name;Ast_412.Parsetree.pmtd_type=pmtd_type;Ast_412.Parsetree.pmtd_attributes=pmtd_attributes;Ast_412.Parsetree.pmtd_loc=pmtd_loc}->{Ast_411.Parsetree.pmtd_name=(copy_loc(funx->x)pmtd_name);Ast_411.Parsetree.pmtd_type=(Option.mapcopy_module_typepmtd_type);Ast_411.Parsetree.pmtd_attributes=(copy_attributespmtd_attributes);Ast_411.Parsetree.pmtd_loc=(copy_locationpmtd_loc)}andcopy_module_substitution:Ast_412.Parsetree.module_substitution->Ast_411.Parsetree.module_substitution=fun{Ast_412.Parsetree.pms_name=pms_name;Ast_412.Parsetree.pms_manifest=pms_manifest;Ast_412.Parsetree.pms_attributes=pms_attributes;Ast_412.Parsetree.pms_loc=pms_loc}->{Ast_411.Parsetree.pms_name=(copy_loc(funx->x)pms_name);Ast_411.Parsetree.pms_manifest=(copy_loccopy_Longident_tpms_manifest);Ast_411.Parsetree.pms_attributes=(copy_attributespms_attributes);Ast_411.Parsetree.pms_loc=(copy_locationpms_loc)}andcopy_module_declaration:Ast_412.Parsetree.module_declaration->Ast_411.Parsetree.module_declaration=fun{Ast_412.Parsetree.pmd_name=pmd_name;Ast_412.Parsetree.pmd_type=pmd_type;Ast_412.Parsetree.pmd_attributes=pmd_attributes;Ast_412.Parsetree.pmd_loc=pmd_loc}->{Ast_411.Parsetree.pmd_name=(copy_loc(funx->Option.map(funx->x)x)pmd_name);Ast_411.Parsetree.pmd_type=(copy_module_typepmd_type);Ast_411.Parsetree.pmd_attributes=(copy_attributespmd_attributes);Ast_411.Parsetree.pmd_loc=(copy_locationpmd_loc)}andcopy_type_exception:Ast_412.Parsetree.type_exception->Ast_411.Parsetree.type_exception=fun{Ast_412.Parsetree.ptyexn_constructor=ptyexn_constructor;Ast_412.Parsetree.ptyexn_loc=ptyexn_loc;Ast_412.Parsetree.ptyexn_attributes=ptyexn_attributes}->{Ast_411.Parsetree.ptyexn_constructor=(copy_extension_constructorptyexn_constructor);Ast_411.Parsetree.ptyexn_loc=(copy_locationptyexn_loc);Ast_411.Parsetree.ptyexn_attributes=(copy_attributesptyexn_attributes)}andcopy_type_extension:Ast_412.Parsetree.type_extension->Ast_411.Parsetree.type_extension=fun{Ast_412.Parsetree.ptyext_path=ptyext_path;Ast_412.Parsetree.ptyext_params=ptyext_params;Ast_412.Parsetree.ptyext_constructors=ptyext_constructors;Ast_412.Parsetree.ptyext_private=ptyext_private;Ast_412.Parsetree.ptyext_loc=ptyext_loc;Ast_412.Parsetree.ptyext_attributes=ptyext_attributes}->{Ast_411.Parsetree.ptyext_path=(copy_loccopy_Longident_tptyext_path);Ast_411.Parsetree.ptyext_params=(List.map(funx->let(x0,x1)=xin((copy_core_typex0),(let(x0,_)=x1in(copy_variancex0))))ptyext_params);Ast_411.Parsetree.ptyext_constructors=(List.mapcopy_extension_constructorptyext_constructors);Ast_411.Parsetree.ptyext_private=(copy_private_flagptyext_private);Ast_411.Parsetree.ptyext_loc=(copy_locationptyext_loc);Ast_411.Parsetree.ptyext_attributes=(copy_attributesptyext_attributes)}andcopy_extension_constructor:Ast_412.Parsetree.extension_constructor->Ast_411.Parsetree.extension_constructor=fun{Ast_412.Parsetree.pext_name=pext_name;Ast_412.Parsetree.pext_kind=pext_kind;Ast_412.Parsetree.pext_loc=pext_loc;Ast_412.Parsetree.pext_attributes=pext_attributes}->{Ast_411.Parsetree.pext_name=(copy_loc(funx->x)pext_name);Ast_411.Parsetree.pext_kind=(copy_extension_constructor_kindpext_kind);Ast_411.Parsetree.pext_loc=(copy_locationpext_loc);Ast_411.Parsetree.pext_attributes=(copy_attributespext_attributes)}andcopy_extension_constructor_kind:Ast_412.Parsetree.extension_constructor_kind->Ast_411.Parsetree.extension_constructor_kind=function|Ast_412.Parsetree.Pext_decl(x0,x1)->Ast_411.Parsetree.Pext_decl((copy_constructor_argumentsx0),(Option.mapcopy_core_typex1))|Ast_412.Parsetree.Pext_rebindx0->Ast_411.Parsetree.Pext_rebind(copy_loccopy_Longident_tx0)andcopy_type_declaration:Ast_412.Parsetree.type_declaration->Ast_411.Parsetree.type_declaration=fun{Ast_412.Parsetree.ptype_name=ptype_name;Ast_412.Parsetree.ptype_params=ptype_params;Ast_412.Parsetree.ptype_cstrs=ptype_cstrs;Ast_412.Parsetree.ptype_kind=ptype_kind;Ast_412.Parsetree.ptype_private=ptype_private;Ast_412.Parsetree.ptype_manifest=ptype_manifest;Ast_412.Parsetree.ptype_attributes=ptype_attributes;Ast_412.Parsetree.ptype_loc=ptype_loc}->{Ast_411.Parsetree.ptype_name=(copy_loc(funx->x)ptype_name);Ast_411.Parsetree.ptype_params=(List.map(funx->let(x0,x1)=xin((copy_core_typex0),(let(x0,_)=x1in(copy_variancex0))))ptype_params);Ast_411.Parsetree.ptype_cstrs=(List.map(funx->let(x0,x1,x2)=xin((copy_core_typex0),(copy_core_typex1),(copy_locationx2)))ptype_cstrs);Ast_411.Parsetree.ptype_kind=(copy_type_kindptype_kind);Ast_411.Parsetree.ptype_private=(copy_private_flagptype_private);Ast_411.Parsetree.ptype_manifest=(Option.mapcopy_core_typeptype_manifest);Ast_411.Parsetree.ptype_attributes=(copy_attributesptype_attributes);Ast_411.Parsetree.ptype_loc=(copy_locationptype_loc)}andcopy_private_flag:Ast_412.Asttypes.private_flag->Ast_411.Asttypes.private_flag=function|Ast_412.Asttypes.Private->Ast_411.Asttypes.Private|Ast_412.Asttypes.Public->Ast_411.Asttypes.Publicandcopy_type_kind:Ast_412.Parsetree.type_kind->Ast_411.Parsetree.type_kind=function|Ast_412.Parsetree.Ptype_abstract->Ast_411.Parsetree.Ptype_abstract|Ast_412.Parsetree.Ptype_variantx0->Ast_411.Parsetree.Ptype_variant(List.mapcopy_constructor_declarationx0)|Ast_412.Parsetree.Ptype_recordx0->Ast_411.Parsetree.Ptype_record(List.mapcopy_label_declarationx0)|Ast_412.Parsetree.Ptype_open->Ast_411.Parsetree.Ptype_openandcopy_constructor_declaration:Ast_412.Parsetree.constructor_declaration->Ast_411.Parsetree.constructor_declaration=fun{Ast_412.Parsetree.pcd_name=pcd_name;Ast_412.Parsetree.pcd_args=pcd_args;Ast_412.Parsetree.pcd_res=pcd_res;Ast_412.Parsetree.pcd_loc=pcd_loc;Ast_412.Parsetree.pcd_attributes=pcd_attributes}->{Ast_411.Parsetree.pcd_name=(copy_loc(funx->x)pcd_name);Ast_411.Parsetree.pcd_args=(copy_constructor_argumentspcd_args);Ast_411.Parsetree.pcd_res=(Option.mapcopy_core_typepcd_res);Ast_411.Parsetree.pcd_loc=(copy_locationpcd_loc);Ast_411.Parsetree.pcd_attributes=(copy_attributespcd_attributes)}andcopy_constructor_arguments:Ast_412.Parsetree.constructor_arguments->Ast_411.Parsetree.constructor_arguments=function|Ast_412.Parsetree.Pcstr_tuplex0->Ast_411.Parsetree.Pcstr_tuple(List.mapcopy_core_typex0)|Ast_412.Parsetree.Pcstr_recordx0->Ast_411.Parsetree.Pcstr_record(List.mapcopy_label_declarationx0)andcopy_label_declaration:Ast_412.Parsetree.label_declaration->Ast_411.Parsetree.label_declaration=fun{Ast_412.Parsetree.pld_name=pld_name;Ast_412.Parsetree.pld_mutable=pld_mutable;Ast_412.Parsetree.pld_type=pld_type;Ast_412.Parsetree.pld_loc=pld_loc;Ast_412.Parsetree.pld_attributes=pld_attributes}->{Ast_411.Parsetree.pld_name=(copy_loc(funx->x)pld_name);Ast_411.Parsetree.pld_mutable=(copy_mutable_flagpld_mutable);Ast_411.Parsetree.pld_type=(copy_core_typepld_type);Ast_411.Parsetree.pld_loc=(copy_locationpld_loc);Ast_411.Parsetree.pld_attributes=(copy_attributespld_attributes)}andcopy_mutable_flag:Ast_412.Asttypes.mutable_flag->Ast_411.Asttypes.mutable_flag=function|Ast_412.Asttypes.Immutable->Ast_411.Asttypes.Immutable|Ast_412.Asttypes.Mutable->Ast_411.Asttypes.Mutableandcopy_variance:Ast_412.Asttypes.variance->Ast_411.Asttypes.variance=function|Ast_412.Asttypes.Covariant->Ast_411.Asttypes.Covariant|Ast_412.Asttypes.Contravariant->Ast_411.Asttypes.Contravariant|Ast_412.Asttypes.NoVariance->Ast_411.Asttypes.Invariantandcopy_value_description:Ast_412.Parsetree.value_description->Ast_411.Parsetree.value_description=fun{Ast_412.Parsetree.pval_name=pval_name;Ast_412.Parsetree.pval_type=pval_type;Ast_412.Parsetree.pval_prim=pval_prim;Ast_412.Parsetree.pval_attributes=pval_attributes;Ast_412.Parsetree.pval_loc=pval_loc}->{Ast_411.Parsetree.pval_name=(copy_loc(funx->x)pval_name);Ast_411.Parsetree.pval_type=(copy_core_typepval_type);Ast_411.Parsetree.pval_prim=(List.map(funx->x)pval_prim);Ast_411.Parsetree.pval_attributes=(copy_attributespval_attributes);Ast_411.Parsetree.pval_loc=(copy_locationpval_loc)}andcopy_object_field_desc:Ast_412.Parsetree.object_field_desc->Ast_411.Parsetree.object_field_desc=function|Ast_412.Parsetree.Otag(x0,x1)->Ast_411.Parsetree.Otag((copy_loccopy_labelx0),(copy_core_typex1))|Ast_412.Parsetree.Oinheritx0->Ast_411.Parsetree.Oinherit(copy_core_typex0)andcopy_arg_label:Ast_412.Asttypes.arg_label->Ast_411.Asttypes.arg_label=function|Ast_412.Asttypes.Nolabel->Ast_411.Asttypes.Nolabel|Ast_412.Asttypes.Labelledx0->Ast_411.Asttypes.Labelledx0|Ast_412.Asttypes.Optionalx0->Ast_411.Asttypes.Optionalx0andcopy_closed_flag:Ast_412.Asttypes.closed_flag->Ast_411.Asttypes.closed_flag=function|Ast_412.Asttypes.Closed->Ast_411.Asttypes.Closed|Ast_412.Asttypes.Open->Ast_411.Asttypes.Openandcopy_label:Ast_412.Asttypes.label->Ast_411.Asttypes.label=funx->xandcopy_rec_flag:Ast_412.Asttypes.rec_flag->Ast_411.Asttypes.rec_flag=function|Ast_412.Asttypes.Nonrecursive->Ast_411.Asttypes.Nonrecursive|Ast_412.Asttypes.Recursive->Ast_411.Asttypes.Recursiveandcopy_constant:Ast_412.Parsetree.constant->Ast_411.Parsetree.constant=function|Ast_412.Parsetree.Pconst_integer(x0,x1)->Ast_411.Parsetree.Pconst_integer(x0,(Option.map(funx->x)x1))|Ast_412.Parsetree.Pconst_charx0->Ast_411.Parsetree.Pconst_charx0|Ast_412.Parsetree.Pconst_string(x0,x1,x2)->Ast_411.Parsetree.Pconst_string(x0,(copy_locationx1),(Option.map(funx->x)x2))|Ast_412.Parsetree.Pconst_float(x0,x1)->Ast_411.Parsetree.Pconst_float(x0,(Option.map(funx->x)x1))andcopy_Longident_t:Longident.t->Longident.t=function|Longident.Lidentx0->Longident.Lidentx0|Longident.Ldot(x0,x1)->Longident.Ldot((copy_Longident_tx0),x1)|Longident.Lapply(x0,x1)->Longident.Lapply((copy_Longident_tx0),(copy_Longident_tx1))andcopy_loc:'f0'g0.('f0->'g0)->'f0Ast_412.Asttypes.loc->'g0Ast_411.Asttypes.loc=funf0->fun{Ast_412.Asttypes.txt=txt;Ast_412.Asttypes.loc=loc}->{Ast_411.Asttypes.txt=(f0txt);Ast_411.Asttypes.loc=(copy_locationloc)}andcopy_location:Location.t->Location.t=fun{Location.loc_start=loc_start;Location.loc_end=loc_end;Location.loc_ghost=loc_ghost}->{Location.loc_start=(copy_positionloc_start);Location.loc_end=(copy_positionloc_end);Location.loc_ghost=loc_ghost}andcopy_position:Lexing.position->Lexing.position=fun{Lexing.pos_fname=pos_fname;Lexing.pos_lnum=pos_lnum;Lexing.pos_bol=pos_bol;Lexing.pos_cnum=pos_cnum}->{Lexing.pos_fname=pos_fname;Lexing.pos_lnum=pos_lnum;Lexing.pos_bol=pos_bol;Lexing.pos_cnum=pos_cnum}