0 Y#Q!55.5.0+dev0-2025-04-28/#Obj!tA;@@@A@@@@@4../../stdlib/obj.mliUU@@@@#Obj@@A@(raw_dataB;@@ A)nativeintx@@@|@@@@WW@@@@A@A@$repr@!a@C@@@#Objy!t@@@@@)%identityAA @@@2Y3Y@@1B@@#obj@#Objz!t@@@@@!a@C@@@)%identityAA @@@QZRZ)@@PC@@%magic@!a@C@@@!b@C@@@)%identityAA=@@@n[**o[*Q@@mD@@(is_block@#Obj{!t@@@@@$bool|@@@@@@\RR\Rj@@E@@&is_int@#Obj}!t@@@@@~@@@@@+%obj_is_intAAv@@@]kk]k@@F@@#tag@#Obj!t@@@@@#int@@@@@,caml_obj_tagA@@@@^^@'noalloc^^@@^ @@G@@$size@#Obj!t@@@@@)@@@@@)%obj_sizeAA@@@__@@H@@/reachable_words@#Obj!t@@@@@G@@@@@8caml_obj_reachable_wordsAA۠@@@ ` `3@@ I@@%field@#Obj!t@@@@@@i@@@@@#Obj!t@@@@@@@*%obj_fieldBA@@@@7i8i$@@6J@@)set_field@#Obj!t@@@@@@@@@@@@#Obj!t@@@@@$unit@@@@@@@@@.%obj_set_fieldCA:@@@@@mwnw@@lK@@,double_field@#Obj!t@@@@@@@@@@@%float@@@@@@@@yy !@@L@@0set_double_field@#Obj!t@@@@@@@@@@@@(@@@@@W@@@@@@@@@@z 7 7z 7 g@@M@@)raw_field @#Obj!t@@@@@@@@@@@#Obj(raw_data@@@@@@@Ӑ2caml_obj_raw_fieldBA@@@@}  }  @@N@@-set_raw_field!@#Obj!t@@@@@@E@@@@@@#Obj(raw_data@@@@@@@@@@@@@@ݐ6caml_obj_set_raw_fieldCA@@@@@  @  N@@O@@)new_block"@n@@@@@@w@@@@@#Obj!t@@@@@@@.caml_obj_blockBA@@@@EC d dFC d @@DP@@#dup#@#Obj!t@@@@@#Obj!t@@@@@,caml_obj_dupAA5@@@fD  gD  @@eQ@@*add_offsetM@#Obj!t@@@@@ @&Stdlib%Int32!t@@@ @@ #Obj!t@@@ @@ @@ 3caml_obj_add_offsetBAd@@@@E  E  @@R@@(with_tagN@@@@ @@ @#Obj!t@@@ @@ #Obj!t@@@ @@ @@ 1caml_obj_with_tagBA@@@@G  G  U@@S@@ "first_non_constant_constructor_tagO@@@ @J k kJ k @@T@@ !last_non_constant_constructor_tagP@@@ @K  K  @@U@@+forcing_tagQ*@@@ @M  M  @@V@@(cont_tagR8@@@ @N  N  @@W@@(lazy_tagSF@@@ @O  O  @@X@@+closure_tagTT@@@ @P  P  @@Y@@*object_tagUb@@@ @#Q  $Q  +@@"Z@@)infix_tagVp@@@ @1R , ,2R , ?@@0[@@+forward_tagW~@@@ @?S @ @@S @ U@@>\@@+no_scan_tagX@@@ @MT V VNT V k@@L]@@,abstract_tagY@@@ @[U l l\U l @@Z^@@*string_tagZ@@@ @iV  jV  @@h_@@*double_tag[@@@ @wW  xW  @@v`@@0double_array_tag\@@@ @X  X  @@a@@*custom_tag]@@@ @Y  Y  @@b@@'int_tag^@@@ @[  [  @@c@@/out_of_heap_tag_@@@ @\  \  +@@d@@-unaligned_tag`@@@ @] , ,] , C@@e@@ӱ5Extension_constructoreC@!taD;@@A5extension_constructor@@@ @@@@a  a  @@@@f@A@&of_valb@!a@ E@ @@ #Obj5Extension_constructor!t@@@ @@ @b  b  @@g@@$namec@#Obj5Extension_constructor!t@@@ @@ &string@@@ @@ @ c  c  @@ h@@"idd@#Obj5Extension_constructor!t@@@ @@ h@@@ @@ @)d  *d  @@(i@@@@-_ m m.e  @,j@@@ӱ)EphemeronwE@%obj_tfF;@@=A#Obj!t@@@ @@@@EjEGFjEU@@@@Dk@A@!tgG;@@OA@@@@@NmsuOms{@@@@Ml@A@&createh@@@@ @@ #Obj)Ephemeron!t@@@ @@ @jpkp@@im@@&lengthi@#Obj)Ephemeron!t@@@ @@ @@@ @@ @ww@@n@@'get_keyj@#Obj)Ephemeron!t@@@ @@ @@@@ @@ &optionL#Obj)Ephemeron%obj_t@@@ @@@ @@ @@ @zz@@o@@,get_key_copyk@#Obj)Ephemeron!t@@@ @@ @@@@ @@ 1#Obj)Ephemeron%obj_t@@@ @@@ @@ @@ @||@@p@@'set_keyl@#Obj)Ephemeron!t@@@ @@ @E@@@ @@ @#Obj)Ephemeron%obj_t@@@ @@ @@@ @@ @@ @@ @~~@@@q@@)unset_keym@#Obj)Ephemeron!t@@@ @@ @x@@@ @@ @@@ @@ @@ @>BD?Bc@@=r@@)check_keyn@#Obj)Ephemeron!t@@@ @@ @@@@ @@ @@@ @@ @@ @cegde@@bs@@(blit_keyo@#Obj)Ephemeron!t@@@ @@ @@@@ @@ @#Obj)Ephemeron!t@@@ @@ @@@@ @@ @@@@ @@ B@@@ @@ @@ @@ @@ @@ @@@t@@(get_datap@#Obj)Ephemeron!t@@@ @@ #Obj)Ephemeron%obj_t@@@ @@@ @@ @@@u@@-get_data_copyq@#Obj)Ephemeron!t@@@ @@ ?#Obj)Ephemeron%obj_t@@@ @@@ @@ @@@v@@(set_datar@#Obj)Ephemeron!t@@@ @@ @#Obj)Ephemeron%obj_t@@@ @@ @@@ @@ @@ @   +@@w@@*unset_datas@#Obj)Ephemeron!t@@@ @@ @@@ @@ @:-/;-H@@9x@@*check_datat@#Obj)Ephemeron!t@@@ @@ @@@ @@ @VJLWJe@@Uy@@)blit_datau@#Obj)Ephemeron!t@@@ @@ #@#Obj)Ephemeron!t@@@ @@ !@@@ @@ "@@ $@gig@@z@@/max_ephe_lengthv@@@ %@@@{@@@@g   @|@@@@3 1Operations on internal representations of values.@< Not for the casual user.@@@@@@@@@@@@A4../../stdlib/obj.mli#%Obj.t@@@A@@@@#,Obj.raw_data@@@A@@@(Obj.repr@@ @@@@'Obj.obj@@ @@@@t)Obj.magic@o@p@@@@`,Obj.is_block@[@\@@@@N*Obj.is_int@I@%J@@@@9'Obj.tag@4@.5@@@@#(Obj.size@@7@@@@3Obj.reachable_words3 Computes the total size (in words, including the headers) of all heap blocks accessible from the argument. Statically allocated blocks are included.@@@@$4.04@@@@@@@@H@@@@)Obj.field@@Q@T@@@@ؠ-Obj.set_field33When using flambda:@% )set_field T MUST NOT be called on immutable blocks. (Blocks allocated in C stubs, or with )new_block ' below, are always considered mutable.)@7 The same goes for 0set_double_field!.@; For experts only: )set_field ; et al can be made safe by first wrapping the block in 3Sys.opaque_identity@@ C, so any information about its contents will not be propagated.@@@@@@@@@@@@@@@@@@@᠕0Obj.double_field@@@@@@@ɠ4Obj.set_double_field@@@@@@@@-Obj.raw_field@@@@@@@1Obj.set_raw_field@@@@z@@@@g-Obj.new_block@b@c@]@@@@K'Obj.dup@F@G@@@@3.Obj.add_offset@.@/@&@@@@,Obj.with_tag@ @ @@@@@ &Obj.first_non_constant_constructor_tag@@@@@蠕 %Obj.last_non_constant_constructor_tag@@@@@ࠕ/Obj.forcing_tag@@@@@ؠ,Obj.cont_tag@@@@@Р,Obj.lazy_tag@@@@@Ƞ/Obj.closure_tag@@@@@.Obj.object_tag@@@@@-Obj.infix_tag@@@@@/Obj.forward_tag@@@@@/Obj.no_scan_tag@@@@@0Obj.abstract_tag@@@@@.Obj.string_tag@@@@@.Obj.double_tag@@@@@4Obj.double_array_tag@@@@@.Obj.custom_tag@{@@@@x+Obj.int_tag@s@@@@p3Obj.out_of_heap_tag@k@@@@h1Obj.unaligned_tag@c@@@@`/9Obj.Extension_constructor[@A#;Obj.Extension_constructor.t@@@A[@WV@@ Obj.Extension_constructor.of_val@S@yT@@@@D>Obj.Extension_constructor.name@?@@@@@@0@?@@@@04Obj.Ephemeron.length39return the number of keys@@@@@@@@@@@@1@2@@@@#5Obj.Ephemeron.get_key@@@@@@@:Obj.Ephemeron.get_key_copy@@@@@@@۠5Obj.Ephemeron.set_key@@@@@@@@7Obj.Ephemeron.unset_key@@@!@@@@7Obj.Ephemeron.check_key@@*@-@@@@6Obj.Ephemeron.blit_key@@6@9v@<p@?e@B_@@@@U6Obj.Ephemeron.get_data@P@KQ@@@@8;Obj.Ephemeron.get_data_copy@3@T4@@@@6Obj.Ephemeron.set_data@@]@` @@@@8Obj.Ephemeron.unset_data@@i@@@@ꠕ8Obj.Ephemeron.check_data@@r@@@@נ7Obj.Ephemeron.blit_data@@{@~@@@@3 ^Maximum length of an ephemeron, ie the maximum number of keys an ephemeron could contain@@@@@@@@@@@@@@@@@@@@@@@@@@@A%Int32@@@@@