123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927typettypekind=|Invalid|Nop|Block|If|Loop|Break|Switch|Call|CallIndirect|LocalGet|LocalSet|GlobalGet|GlobalSet|Load|Store|AtomicRMW|AtomicCmpxchg|AtomicWait|AtomicNotify|AtomicFence|SIMDExtract|SIMDReplace|SIMDShuffle|SIMDTernary|SIMDShift|SIMDLoad|SIMDLoadStoreLane|MemoryInit|DataDrop|MemoryCopy|MemoryFill|Const|Unary|Binary|Select|Drop|Return|MemorySize|MemoryGrow|Unreachable|Pop|RefNull|RefIs|RefFunc|RefEq|Try|Throw|Rethrow|TupleMake|TupleExtract|I31New|I31Get|CallRef|RefTest|RefCast|BrOn|StructNew|StructGet|StructSet|ArrayNew|ArrayGet|ArraySet|ArrayLen|RefAsexternalget_id:t->int="caml_binaryen_expression_get_id"externalid_invalid:unit->int="caml_binaryen_expression_id_invalid"letid_invalid=id_invalid()externalid_nop:unit->int="caml_binaryen_expression_id_nop"letid_nop=id_nop()externalid_block:unit->int="caml_binaryen_expression_id_block"letid_block=id_block()externalid_if:unit->int="caml_binaryen_expression_id_if"letid_if=id_if()externalid_loop:unit->int="caml_binaryen_expression_id_loop"letid_loop=id_loop()externalid_break:unit->int="caml_binaryen_expression_id_break"letid_break=id_break()externalid_switch:unit->int="caml_binaryen_expression_id_switch"letid_switch=id_switch()externalid_call:unit->int="caml_binaryen_expression_id_call"letid_call=id_call()externalid_call_indirect:unit->int="caml_binaryen_expression_id_call_indirect"letid_call_indirect=id_call_indirect()externalid_local_get:unit->int="caml_binaryen_expression_id_local_get"letid_local_get=id_local_get()externalid_local_set:unit->int="caml_binaryen_expression_id_local_set"letid_local_set=id_local_set()externalid_global_get:unit->int="caml_binaryen_expression_id_global_get"letid_global_get=id_global_get()externalid_global_set:unit->int="caml_binaryen_expression_id_global_set"letid_global_set=id_global_set()externalid_load:unit->int="caml_binaryen_expression_id_load"letid_load=id_load()externalid_store:unit->int="caml_binaryen_expression_id_store"letid_store=id_store()externalid_atomic_rmw:unit->int="caml_binaryen_expression_id_atomic_rmw"letid_atomic_rmw=id_atomic_rmw()externalid_atomic_cmpxchg:unit->int="caml_binaryen_expression_id_atomic_cmpxchg"letid_atomic_cmpxchg=id_atomic_cmpxchg()externalid_atomic_wait:unit->int="caml_binaryen_expression_id_atomic_wait"letid_atomic_wait=id_atomic_wait()externalid_atomic_notify:unit->int="caml_binaryen_expression_id_atomic_notify"letid_atomic_notify=id_atomic_notify()externalid_atomic_fence:unit->int="caml_binaryen_expression_id_atomic_fence"letid_atomic_fence=id_atomic_fence()externalid_simd_extract:unit->int="caml_binaryen_expression_id_simd_extract"letid_simd_extract=id_simd_extract()externalid_simd_replace:unit->int="caml_binaryen_expression_id_simd_replace"letid_simd_replace=id_simd_replace()externalid_simd_shuffle:unit->int="caml_binaryen_expression_id_simd_shuffle"letid_simd_shuffle=id_simd_shuffle()externalid_simd_ternary:unit->int="caml_binaryen_expression_id_simd_ternary"letid_simd_ternary=id_simd_ternary()externalid_simd_shift:unit->int="caml_binaryen_expression_id_simd_shift"letid_simd_shift=id_simd_shift()externalid_simd_load:unit->int="caml_binaryen_expression_id_simd_load"letid_simd_load=id_simd_load()externalid_simd_load_store_lane:unit->int="caml_binaryen_expression_id_simd_load_store_lane"letid_simd_load_store_lane=id_simd_load_store_lane()externalid_memory_init:unit->int="caml_binaryen_expression_id_memory_init"letid_memory_init=id_memory_init()externalid_data_drop:unit->int="caml_binaryen_expression_id_data_drop"letid_data_drop=id_data_drop()externalid_memory_copy:unit->int="caml_binaryen_expression_id_memory_copy"letid_memory_copy=id_memory_copy()externalid_memory_fill:unit->int="caml_binaryen_expression_id_memory_fill"letid_memory_fill=id_memory_fill()externalid_const:unit->int="caml_binaryen_expression_id_const"letid_const=id_const()externalid_unary:unit->int="caml_binaryen_expression_id_unary"letid_unary=id_unary()externalid_binary:unit->int="caml_binaryen_expression_id_binary"letid_binary=id_binary()externalid_select:unit->int="caml_binaryen_expression_id_select"letid_select=id_select()externalid_drop:unit->int="caml_binaryen_expression_id_drop"letid_drop=id_drop()externalid_return:unit->int="caml_binaryen_expression_id_return"letid_return=id_return()externalid_memory_size:unit->int="caml_binaryen_expression_id_memory_size"letid_memory_size=id_memory_size()externalid_memory_grow:unit->int="caml_binaryen_expression_id_memory_grow"letid_memory_grow=id_memory_grow()externalid_unreachable:unit->int="caml_binaryen_expression_id_unreachable"letid_unreachable=id_unreachable()externalid_pop:unit->int="caml_binaryen_expression_id_pop"letid_pop=id_pop()externalid_ref_null:unit->int="caml_binaryen_expression_id_ref_null"letid_ref_null=id_ref_null()externalid_ref_is_null:unit->int="caml_binaryen_expression_id_ref_is_null"letid_ref_is_null=id_ref_is_null()externalid_ref_func:unit->int="caml_binaryen_expression_id_ref_func"letid_ref_func=id_ref_func()externalid_ref_eq:unit->int="caml_binaryen_expression_id_ref_eq"letid_ref_eq=id_ref_eq()externalid_try:unit->int="caml_binaryen_expression_id_try"letid_try=id_try()externalid_throw:unit->int="caml_binaryen_expression_id_throw"letid_throw=id_throw()externalid_rethrow:unit->int="caml_binaryen_expression_id_rethrow"letid_rethrow=id_rethrow()externalid_tuple_make:unit->int="caml_binaryen_expression_id_tuple_make"letid_tuple_make=id_tuple_make()externalid_tuple_extract:unit->int="caml_binaryen_expression_id_tuple_extract"letid_tuple_extract=id_tuple_extract()externalid_i31_new:unit->int="caml_binaryen_expression_id_i31_new"letid_i31_new=id_i31_new()externalid_i31_get:unit->int="caml_binaryen_expression_id_i31_get"letid_i31_get=id_i31_get()externalid_call_ref:unit->int="caml_binaryen_expression_id_call_ref"letid_call_ref=id_call_ref()externalid_ref_test:unit->int="caml_binaryen_expression_id_ref_test"letid_ref_test=id_ref_test()externalid_ref_cast:unit->int="caml_binaryen_expression_id_ref_cast"letid_ref_cast=id_ref_cast()externalid_br_on:unit->int="caml_binaryen_expression_id_br_on"letid_br_on=id_br_on()externalid_struct_new:unit->int="caml_binaryen_expression_id_struct_new"letid_struct_new=id_struct_new()externalid_struct_get:unit->int="caml_binaryen_expression_id_struct_get"letid_struct_get=id_struct_get()externalid_struct_set:unit->int="caml_binaryen_expression_id_struct_set"letid_struct_set=id_struct_set()externalid_array_new:unit->int="caml_binaryen_expression_id_array_new"letid_array_new=id_array_new()externalid_array_get:unit->int="caml_binaryen_expression_id_array_get"letid_array_get=id_array_get()externalid_array_set:unit->int="caml_binaryen_expression_id_array_set"letid_array_set=id_array_set()externalid_array_len:unit->int="caml_binaryen_expression_id_array_len"letid_array_len=id_array_len()externalid_ref_as:unit->int="caml_binaryen_expression_id_ref_as"letid_ref_as=id_ref_as()letget_kindexpr=letid=get_idexprinmatchidwith|nwhenn=id_invalid->Invalid|nwhenn=id_nop->Nop|nwhenn=id_block->Block|nwhenn=id_if->If|nwhenn=id_loop->Loop|nwhenn=id_break->Break|nwhenn=id_switch->Switch|nwhenn=id_call->Call|nwhenn=id_call_indirect->CallIndirect|nwhenn=id_local_get->LocalGet|nwhenn=id_local_set->LocalSet|nwhenn=id_global_get->GlobalGet|nwhenn=id_global_set->GlobalSet|nwhenn=id_load->Load|nwhenn=id_store->Store|nwhenn=id_atomic_rmw->AtomicRMW|nwhenn=id_atomic_cmpxchg->AtomicCmpxchg|nwhenn=id_atomic_wait->AtomicWait|nwhenn=id_atomic_notify->AtomicNotify|nwhenn=id_atomic_fence->AtomicFence|nwhenn=id_simd_extract->SIMDExtract|nwhenn=id_simd_replace->SIMDReplace|nwhenn=id_simd_shuffle->SIMDShuffle|nwhenn=id_simd_ternary->SIMDTernary|nwhenn=id_simd_shift->SIMDShift|nwhenn=id_simd_load->SIMDLoad|nwhenn=id_simd_load_store_lane->SIMDLoadStoreLane|nwhenn=id_memory_init->MemoryInit|nwhenn=id_data_drop->DataDrop|nwhenn=id_memory_copy->MemoryCopy|nwhenn=id_memory_fill->MemoryFill|nwhenn=id_const->Const|nwhenn=id_unary->Unary|nwhenn=id_binary->Binary|nwhenn=id_select->Select|nwhenn=id_drop->Drop|nwhenn=id_return->Return|nwhenn=id_memory_size->MemorySize|nwhenn=id_memory_grow->MemoryGrow|nwhenn=id_unreachable->Unreachable|nwhenn=id_pop->Pop|nwhenn=id_ref_null->RefNull|nwhenn=id_ref_is_null->RefIs|nwhenn=id_ref_func->RefFunc|nwhenn=id_ref_eq->RefEq|nwhenn=id_try->Try|nwhenn=id_throw->Throw|nwhenn=id_rethrow->Rethrow|nwhenn=id_tuple_make->TupleMake|nwhenn=id_tuple_extract->TupleExtract|nwhenn=id_i31_new->I31New|nwhenn=id_i31_get->I31Get|nwhenn=id_call_ref->CallRef|nwhenn=id_ref_test->RefTest|nwhenn=id_ref_cast->RefCast|nwhenn=id_br_on->BrOn|nwhenn=id_struct_new->StructNew|nwhenn=id_struct_get->StructGet|nwhenn=id_struct_set->StructSet|nwhenn=id_array_new->ArrayNew|nwhenn=id_array_get->ArrayGet|nwhenn=id_array_set->ArraySet|nwhenn=id_array_len->ArrayLen|nwhenn=id_ref_as->RefAs|_->failwith"unknown expression kind"externalprint:t->unit="caml_binaryen_expression_print"(** Print an expression to the console. *)externalfinalize:t->unit="caml_binaryen_expression_finalize"externalcopy:t->Module.t->t="caml_binaryen_expression_copy"(** Expression manipulation *)moduleBlock=structexternalmake:Module.t->string->tlist->Type.t->t="caml_binaryen_block"(** Module, block name, expression list. *)letmake?(return_type=Type.auto)wasm_modnameexprs=makewasm_modnameexprsreturn_typeexternalget_name:t->stringoption="caml_binaryen_block_get_name"externalset_name:t->string->unit="caml_binaryen_block_set_name"externalget_num_children:t->int="caml_binaryen_block_get_num_children"externalget_child_at:t->int->t="caml_binaryen_block_get_child_at"externalset_child_at:t->int->t->unit="caml_binaryen_block_set_child_at"externalappend_child:t->t->int="caml_binaryen_block_append_child"externalinsert_child_at:t->int->t->unit="caml_binaryen_block_insert_child_at"externalremove_child_at:t->int->t="caml_binaryen_block_remove_child_at"endmoduleIf=structexternalmake:Module.t->t->t->t->t="caml_binaryen_if"(** Module, condition, true branch, false branch. False branch may be null. *)externalget_condition:t->t="caml_binaryen_if_get_condition"externalset_condition:t->t->unit="caml_binaryen_if_set_condition"externalget_if_true:t->t="caml_binaryen_if_get_if_true"externalset_if_true:t->t->unit="caml_binaryen_if_set_if_true"externalget_if_false:t->toption="caml_binaryen_if_get_if_false"externalset_if_false:t->t->unit="caml_binaryen_if_set_if_false"endmoduleLoop=structexternalmake:Module.t->string->t->t="caml_binaryen_loop"(** Module, loop name, body. *)externalget_name:t->string="caml_binaryen_loop_get_name"externalset_name:t->string->unit="caml_binaryen_loop_set_name"externalget_body:t->t="caml_binaryen_loop_get_body"externalset_body:t->t->unit="caml_binaryen_loop_set_body"endmoduleBreak=structexternalmake:Module.t->string->t->t->t="caml_binaryen_break"(** Module, block name, condition, result. Value and condition may be null. *)externalget_name:t->string="caml_binaryen_break_get_name"externalset_name:t->string->unit="caml_binaryen_break_set_name"externalget_condition:t->toption="caml_binaryen_break_get_condition"externalset_condition:t->t->unit="caml_binaryen_break_set_condition"externalget_value:t->toption="caml_binaryen_break_get_value"externalset_value:t->t->unit="caml_binaryen_break_set_value"endmoduleSwitch=structexternalmake:Module.t->stringlist->string->t->t->t="caml_binaryen_switch"(** Module, branch names, default branch name, condition, value. Value may be null. *)externalget_num_names:t->int="caml_binaryen_switch_get_num_names"externalget_name_at:t->int->string="caml_binaryen_switch_get_name_at"externalset_name_at:t->int->string->unit="caml_binaryen_switch_set_name_at"externalappend_name:t->string->int="caml_binaryen_switch_append_name"externalinsert_name_at:t->int->string->unit="caml_binaryen_switch_insert_name_at"externalremove_name_at:t->int->string="caml_binaryen_switch_remove_name_at"externalget_default_name:t->stringoption="caml_binaryen_switch_get_default_name"externalset_default_name:t->string->unit="caml_binaryen_switch_set_default_name"externalget_condition:t->t="caml_binaryen_switch_get_condition"externalset_condition:t->t->unit="caml_binaryen_switch_set_condition"externalget_value:t->toption="caml_binaryen_switch_get_value"externalset_value:t->t->unit="caml_binaryen_switch_set_value"endmoduleCall=structexternalmake:Module.t->string->tlist->Type.t->t="caml_binaryen_call"(** Module, function name, params, return type. *)externalmake_return:Module.t->string->tlist->Type.t->t="caml_binaryen_return_call"(** Module, function name, params, return type. *)externalget_target:t->string="caml_binaryen_call_get_target"externalset_target:t->string->unit="caml_binaryen_call_set_target"externalget_num_operands:t->int="caml_binaryen_call_get_num_operands"externalget_operand_at:t->int->t="caml_binaryen_call_get_operand_at"externalset_operand_at:t->int->t->unit="caml_binaryen_call_set_operand_at"externalappend_operand:t->t->int="caml_binaryen_call_append_operand"externalinsert_operand_at:t->int->t->unit="caml_binaryen_call_insert_operand_at"externalremove_operand_at:t->int->t="caml_binaryen_call_remove_operand_at"externalis_return:t->bool="caml_binaryen_call_is_return"externalset_return:t->bool->unit="caml_binaryen_call_set_return"endmoduleCall_indirect=structexternalmake:Module.t->string->t->tlist->Type.t->Type.t->t="caml_binaryen_call_indirect__bytecode""caml_binaryen_call_indirect"(** Module, table, function value, params, params type, return type. *)externalmake_return:Module.t->string->t->tlist->Type.t->Type.t->t="caml_binaryen_return_call_indirect__bytecode""caml_binaryen_return_call_indirect"(** Module, table, function value, params, params type, return type. *)externalget_target:t->t="caml_binaryen_call_indirect_get_target"externalset_target:t->t->unit="caml_binaryen_call_indirect_set_target"externalget_table:t->string="caml_binaryen_call_indirect_get_table"externalset_table:t->string->unit="caml_binaryen_call_indirect_set_table"externalget_num_operands:t->int="caml_binaryen_call_indirect_get_num_operands"externalget_operand_at:t->int->t="caml_binaryen_call_indirect_get_operand_at"externalset_operand_at:t->int->t->unit="caml_binaryen_call_indirect_set_operand_at"externalappend_operand:t->t->int="caml_binaryen_call_indirect_append_operand"externalinsert_operand_at:t->int->t->unit="caml_binaryen_call_indirect_insert_operand_at"externalremove_operand_at:t->int->t="caml_binaryen_call_indirect_remove_operand_at"externalis_return:t->bool="caml_binaryen_call_indirect_is_return"externalset_return:t->bool->unit="caml_binaryen_call_indirect_set_return"endmoduleLocal_get=structexternalmake:Module.t->int->Type.t->t="caml_binaryen_local_get"(** Module, slot, type. *)endmoduleLocal_set=structexternalmake:Module.t->int->t->t="caml_binaryen_local_set"(** Module, slot, value. *)externalget_value:t->t="caml_binaryen_local_set_get_value"externalset_value:t->t->unit="caml_binaryen_local_set_set_value"endmoduleLocal_tee=structexternalmake:Module.t->int->t->Type.t->t="caml_binaryen_local_tee"(** Module, slot, value, type. *)endmoduleGlobal_get=structexternalmake:Module.t->string->Type.t->t="caml_binaryen_global_get"(** Module, name, type. *)externalget_name:t->string="caml_binaryen_global_get_get_name"externalset_name:t->string->unit="caml_binaryen_global_get_set_name"endmoduleGlobal_set=structexternalmake:Module.t->string->t->t="caml_binaryen_global_set"(** Module, name, value. *)externalget_name:t->string="caml_binaryen_global_set_get_name"externalset_name:t->string->unit="caml_binaryen_global_set_set_name"externalget_value:t->t="caml_binaryen_global_set_get_value"externalset_value:t->t->unit="caml_binaryen_global_set_set_value"endmoduleLoad=structexternalmake:Module.t->int->bool->int->int->Type.t->t->string->t="caml_binaryen_load__bytecode""caml_binaryen_load"(** Module, num_bytes, ?signed, offset, align, type, ptr, memory_name *)letmakewasm_modbytes?(signed=false)offsetaligntyptr=makewasm_modbytessignedoffsetaligntyptrexternalget_ptr:t->t="caml_binaryen_load_get_ptr"externalset_ptr:t->t->unit="caml_binaryen_load_set_ptr"endmoduleStore=structexternalmake:Module.t->int->int->int->t->t->Type.t->string->t="caml_binaryen_store__bytecode""caml_binaryen_store"(** Module, num_bytes, offset, align, ptr, value, type, memory_name *)externalget_ptr:t->t="caml_binaryen_store_get_ptr"externalset_ptr:t->t->unit="caml_binaryen_store_set_ptr"externalget_value:t->t="caml_binaryen_store_get_value"externalset_value:t->t->unit="caml_binaryen_store_set_value"endmoduleConst=structexternalmake:Module.t->Literal.t->t="caml_binaryen_const"endmoduleUnary=structexternalmake:Module.t->Op.t->t->t="caml_binaryen_unary"externalget_value:t->t="caml_binaryen_unary_get_value"externalset_value:t->t->unit="caml_binaryen_unary_set_value"endmoduleBinary=structexternalmake:Module.t->Op.t->t->t->t="caml_binaryen_binary"externalget_left:t->t="caml_binaryen_binary_get_left"externalset_left:t->t->unit="caml_binaryen_binary_set_left"externalget_right:t->t="caml_binaryen_binary_get_right"externalset_right:t->t->unit="caml_binaryen_binary_set_right"endmoduleSelect=structexternalmake:Module.t->t->t->t->Type.t->t="caml_binaryen_select"(** Module, condition, true branch, false branch. *)letmakewasm_modcondtrufals=makewasm_modcondtrufalsType.autoexternalget_if_true:t->t="caml_binaryen_select_get_if_true"externalset_if_true:t->t->unit="caml_binaryen_select_set_if_true"externalget_if_false:t->t="caml_binaryen_select_get_if_false"externalset_if_false:t->t->unit="caml_binaryen_select_set_if_false"externalget_condition:t->t="caml_binaryen_select_get_condition"externalset_condition:t->t->unit="caml_binaryen_select_set_condition"endmoduleDrop=structexternalmake:Module.t->t->t="caml_binaryen_drop"externalget_value:t->t="caml_binaryen_drop_get_value"externalset_value:t->t->unit="caml_binaryen_drop_set_value"endmoduleReturn=structexternalmake:Module.t->t->t="caml_binaryen_return"externalget_value:t->toption="caml_binaryen_return_get_value"externalset_value:t->t->unit="caml_binaryen_return_set_value"endmoduleMemory_size=structexternalmake:Module.t->string->bool->t="caml_binaryen_memory_size"(** Module, memory_name, memory_is_64 *)endmoduleMemory_grow=structexternalmake:Module.t->t->string->bool->t="caml_binaryen_memory_grow"(** Module, delta, memory_name, memory_is_64 *)externalget_delta:t->t="caml_binaryen_memory_grow_get_delta"externalset_delta:t->t->unit="caml_binaryen_memory_grow_set_delta"endmoduleMemory_init=structexternalmake:Module.t->string->t->t->t->string->t="caml_binaryen_memory_init__bytecode""caml_binaryen_memory_init"(** Module, segment, destination, offset, size, memory_name *)(* Binaryen v113 still uses indexes for data segements, so we only want to change the binding itself, not our interface *)letmakewasm_modsegmentdestoffsetsizememory_name=makewasm_mod(string_of_intsegment)destoffsetsizememory_nameexternalget_segment:t->string="caml_binaryen_memory_init_get_segment"(* Binaryen v113 still uses indexes for data segements, so we only want to change the binding itself, not our interface *)letget_segmentexpr=int_of_string(get_segmentexpr)externalset_segment:t->string->unit="caml_binaryen_memory_init_set_segment"(* Binaryen v113 still uses indexes for data segements, so we only want to change the binding itself, not our interface *)letset_segmentexprsegment=set_segmentexpr(string_of_intsegment)externalget_dest:t->t="caml_binaryen_memory_init_get_dest"externalset_dest:t->t->unit="caml_binaryen_memory_init_set_dest"externalget_offset:t->t="caml_binaryen_memory_init_get_offset"externalset_offset:t->t->unit="caml_binaryen_memory_init_set_offset"externalget_size:t->t="caml_binaryen_memory_init_get_size"externalset_size:t->t->unit="caml_binaryen_memory_init_set_size"endmoduleData_drop=structexternalmake:Module.t->string->t="caml_binaryen_data_drop"(** Module, segment. *)(* Binaryen v113 still uses indexes for data segements, so we only want to change the binding itself, not our interface *)letmakewasm_modsegment=makewasm_mod(string_of_intsegment)externalget_segment:t->string="caml_binaryen_data_drop_get_segment"(* Binaryen v113 still uses indexes for data segements, so we only want to change the binding itself, not our interface *)letget_segmentexpr=int_of_string(get_segmentexpr)externalset_segment:t->string->unit="caml_binaryen_data_drop_set_segment"(* Binaryen v113 still uses indexes for data segements, so we only want to change the binding itself, not our interface *)letset_segmentexprsegment=set_segmentexpr(string_of_intsegment)endmoduleMemory_copy=structexternalmake:Module.t->t->t->t->string->string->t="caml_binaryen_memory_copy__bytecode""caml_binaryen_memory_copy"(** Module, destination, source, size, dest_memory, source_memory *)externalget_dest:t->t="caml_binaryen_memory_copy_get_dest"externalset_dest:t->t->unit="caml_binaryen_memory_copy_set_dest"externalget_source:t->t="caml_binaryen_memory_copy_get_source"externalset_source:t->t->unit="caml_binaryen_memory_copy_set_source"externalget_size:t->t="caml_binaryen_memory_copy_get_size"externalset_size:t->t->unit="caml_binaryen_memory_copy_set_size"endmoduleMemory_fill=structexternalmake:Module.t->t->t->t->string->t="caml_binaryen_memory_fill"(** Module, destination, value, size, memory_name *)externalget_dest:t->t="caml_binaryen_memory_fill_get_dest"externalset_dest:t->t->unit="caml_binaryen_memory_fill_set_dest"externalget_value:t->t="caml_binaryen_memory_fill_get_value"externalset_value:t->t->unit="caml_binaryen_memory_fill_set_value"externalget_size:t->t="caml_binaryen_memory_fill_get_size"externalset_size:t->t->unit="caml_binaryen_memory_fill_set_size"endmoduleTuple_make=structexternalmake:Module.t->tlist->t="caml_binaryen_tuple_make"(** Module, items *)externalget_num_operands:t->int="caml_binaryen_tuple_make_get_num_operands"externalget_operand_at:t->int->t="caml_binaryen_tuple_make_get_operand_at"externalset_operand_at:t->int->t->unit="caml_binaryen_tuple_make_set_operand_at"externalappend_operand:t->t->int="caml_binaryen_tuple_make_append_operand"externalinsert_operand_at:t->int->t->unit="caml_binaryen_tuple_make_insert_operand_at"externalremove_operand_at:t->int->t="caml_binaryen_tuple_make_remove_operand_at"endmoduleTuple_extract=structexternalmake:Module.t->t->int->t="caml_binaryen_tuple_extract"(** Module, tuple, index *)externalget_tuple:t->t="caml_binaryen_tuple_extract_get_tuple"externalset_tuple:t->t->unit="caml_binaryen_tuple_extract_set_tuple"endmoduleNop=structexternalmake:Module.t->t="caml_binaryen_nop"endmoduleUnreachable=structexternalmake:Module.t->t="caml_binaryen_unreachable"endmodulePop=structexternalmake:Module.t->Type.t->t="caml_binaryen_pop"(** Module, type *)endmoduleI31=structexternalmake:Module.t->t->t="caml_binaryen_i31_new"(** Module, value *)externalget:Module.t->t->bool->t="caml_binaryen_i31_get"(** Module, i31, is_signed *)endmoduleNull=structexternalmake:unit->t="caml_binaryen_null_expression"(** A null reference. *)endmoduleRef=structexternalnull:Module.t->Type.t->t="caml_binaryen_ref_null"(** Module, type *)externalis_null:Module.t->t->t="caml_binaryen_ref_is_null"(** Module, value *)externalas_:Module.t->Op.t->t->t="caml_binaryen_ref_as"(** Module, op, value *)externalfunc:Module.t->string->Type.t->t="caml_binaryen_ref_func"(** Module, func, type *)externaleq:Module.t->t->t->t="caml_binaryen_ref_eq"(** Module, left, right *)endmoduleTable=structexternalget:Module.t->string->t->Type.t->t="caml_binaryen_table_get"(** Module, name, index, type *)externalset:Module.t->string->t->t->t="caml_binaryen_table_set"(** Module, name, index, value *)externalsize:Module.t->string->t="caml_binaryen_table_size"(** Module, name *)externalgrow:Module.t->string->t->t->t="caml_binaryen_table_grow"(** Module, name, value, delta *)endmoduleTable_get=structexternalget_table:t->string="caml_binaryen_tableget_get_table"(** Gets the name of the table being accessed by a `Table.get` expression. *)externalset_table:t->string->unit="caml_binaryen_tableget_set_table"(** Gets the name of the table being accessed by a `Table.get` expression. *)externalget_index:t->t="caml_binaryen_tableget_get_index"(** Gets the index expression of a `Table.get` expression. *)externalset_index:t->t->unit="caml_binaryen_tableget_set_index"(** Gets the index expression of a `Table.get` expression. *)endmoduleTable_set=structexternalget_table:t->string="caml_binaryen_tableset_get_table"(** Gets the name of the table being accessed by a `Table.set` expression. *)externalset_table:t->string->unit="caml_binaryen_tableset_set_table"(** Sets the name of the table being accessed by a `Table.set` expression. *)externalget_index:t->t="caml_binaryen_tableset_get_index"(** Gets the index expression of a `Table.set` expression. *)externalset_index:t->t->unit="caml_binaryen_tableset_set_index"(** Sets the index expression of a `Table.set` expression. *)externalget_value:t->t="caml_binaryen_tableset_get_value"(** Gets the value expression of a `Table.set` expression. *)externalset_value:t->t->unit="caml_binaryen_tableset_set_value"(** Sets the value expression of a `Table.set` expression. *)endmoduleTable_size=structexternalget_table:t->string="caml_binaryen_tablesize_get_table"(** Gets the name of the table being accessed by a `Table.size` expression. *)externalset_table:t->string->unit="caml_binaryen_tablesize_set_table"(** Sets the name of the table being accessed by a `Table.size` expression. *)endmoduleTable_grow=structexternalget_table:t->string="caml_binaryen_tablegrow_get_table"(** Gets the name of the table being accessed by a `Table.grow` expression. *)externalset_table:t->string->unit="caml_binaryen_tablegrow_set_table"(** Gets the name of the table being accessed by a `Table.grow` expression. *)externalget_value:t->t="caml_binaryen_tablegrow_get_value"(** Gets the value expression of a `Table.grow` expression. *)externalset_value:t->t->unit="caml_binaryen_tablegrow_set_value"(** Sets the value expression of a `Table.grow` expression. *)externalget_delta:t->t="caml_binaryen_tablegrow_get_delta"(** Gets the delta of a `Table.grow` expression. *)externalset_delta:t->t->unit="caml_binaryen_tablegrow_set_delta"(** Sets the delta of a `Table.grow` expression. *)end