Caml1999I031"+Stdlib__Obj!ty8@@@A@@@@@'obj.mliUU@@@@ @A@(raw_dataz8@@@A)nativeintK@@@@@@@WW@@@@AA@$repr{@!a@&@@@@@)%identityAA @@@)Y*Y@@3B@#obj|@@@@!a@@@)%identityAA@@@?Z@Z@@IC@%magic}@!a@!b@@@)%identityAA.@@@V[W[6@@`D@(is_block~@A@@@$boolE@@@@@@j\77k\7`@&inlineq\7=r\7C@&always}\7D~\7J@@@@@@\7;\7K@@E@&is_int@l@@@+@@@@@+%obj_is_intAAo@@@]aa]a@@F@#tag@@@@#intA@@@@@,caml_obj_tagA@@@@^^@'noalloc^^@@^ @@G@$size@@@@"@@@@@)%obj_sizeAA@@@__@@H@/reachable_words@@@@8@@@@@8caml_obj_reachable_wordsAA@@@``)@@I@%field@@@@@P@@@@@@@@@@*%obj_fieldBAؠ@@@@j<<j<i@@ J@)set_field@@@@@l@@@@@@@$unitF@@@@@@@@@.%obj_set_fieldCA@@@@@&{  '{  ?@@0K@'set_tag@@@@@@@@ @@@@@@@0caml_obj_set_tagBA@@@@C| @ @D} y @0ocaml.deprecatedJ} y ~K} y @5Use with_tag instead.U} y V} y @@X} y Y} y @@@@@[} y {@@dL@,double_field@E@@@@@@@%floatD@@@@@@@@t  u  @&inline{  |  @&always    @@@@@@    @@M@0set_double_field@v@@@@@@@@3@@@@@@@@@@@@@@  @  5@&inline@  @  @&always@  @  @@@@@@@  @  @@N@)raw_field@@@@@+@@@@@@@@@@Ɛ2caml_obj_raw_fieldBA@@@@C M MC M @@O@-set_raw_field@@@@@H@@@@@@@@@@@@@@@@͐6caml_obj_set_raw_fieldCA֠@@@@@E  F  @@ P@)new_block@f@@@@l@@@@@@@@@@Ґ.caml_obj_blockBA@@@@I 2 2I 2 i@@'Q@#dup@@@@ @@@@@Ր,caml_obj_dupAA @@@2J j j3J j @@@0ocaml.deprecatedTaUa#@7Replaced by custom_tag._a%`a<@@ba$ca=@@@@@ea@@nc@'int_tag@@@@qc@@rc@Q@@{d@/out_of_heap_tag@@@@~dRRdRk@@e@-unaligned_tag@@@@ellel@@f@Ӡ'Closure@$info8@@%arity[@@@@ii@@h)start_env\@@@@jj@@i@@A@@@@@hk@@@@gA@$info@@@@-@@@@@@ll@@j@@@gm@k@@Ӡ5Extension_constructor@!t8@@@A5extension_constructorP@@@}@@@@q;=q;[@@@@lA@&of_val@!a@~@@@@@@r\^r\r@@m@$name@@@@&stringO@@@@@@ssuss@&inline ss{ss@&alwaysssss@@@@@@ssyss@@'n@"id@:@@@@@@@@@/t0t@&inline6t7t@&alwaysBtCt@@@@@@FtGt@@Po@@@JoKu@Tp@@5extension_constructor@!a@@@@@@@]v^w;@0ocaml.deprecateddwew@ $use Obj.Extension_constructor.of_valowpw9@@rwsw:@@@@@uw@@~q@.extension_name@@@@@@@@@@x<<y@&inlinex<Bx<H@&alwaysx<Ix<O@@@@@@x<@x<P@0ocaml.deprecatedyy@ "use Obj.Extension_constructor.nameyy@@yy@@@@@y/@@r@,extension_id@@@@@@@@@@z{8@&inlinezz@&alwayszz@@@@@@zz@0ocaml.deprecated{{@ use Obj.Extension_constructor.id{{6@@{{7@@@@@{/@@s@Ӡ)Ephemeron@%obj_t8@@@A@@@5@@@@  @@@@tA@!t8@@@A@@@@@@@@@uA@&create@x@@@6@@@7@@8@%&@@/v@&length@@@@9@@@:@@;@78@@Aw@'get_key@!@@@<@@@@=&optionJR@@@>@@@?@@@@@A@VW(@@`x@,get_key_copy@@@@@B@@@@C@@@D@@@E@@F@@G@rZ\sZ@@|y@'set_key@\@@@H@@@@I@7@@@Jq@@@K@@L@@M@@N@@@z@)unset_key@y@@@O@@@@P@@@Q@@R@@S@8@@{@)check_key@@@@T@@@@UW@@@V@@W@@X@lnl@@|@(blit_key@@@@Y@*@@@Z@@@@[@5@@@\@;@@@]@@@^@@_@@`@@a@@b@@c@@@}@(get_data@@@@d@@@e@@@f@@g@(*(I@@~@-get_data_copy@@@@h@@@i@@@j@@k@|~|@@@(set_data@@@@l@@@@m @@@n@@o@@p@+,@@5@@*unset_data@@@@q@@@r@@s@=/1>/J@@GA@*check_data@'@@@t@@@u@@v@OP@@YB@)blit_data@9@@@w@>@@@xH@@@y@@z@@{@fg@@pC@/max_ephe_length@@@|@s#%t#=@@}D@@@w}::x@E@@@L=+Stdlib__Obj0%yM)h3+-Stdlib__Int320#0wG_e&Stdlib0yӶ~*8CamlinternalFormatBasics0cEXy<+Stdlib__Obj*ocaml.text&_none_@@A P Operations on internal representations of values. Not for the casual user. 'obj.mliP77S@@@@@@0@@@@@@%arrayH8@@M@A@A@@@@@@8@@@$boolE8@@%false^@@B@$true_@@H@@@A@@@@@I@A@$charB8@@@A@@@@@M@A@#exnG8@@AA@@@@@Q@@@5extension_constructorP8@@@A@@@@@U@@@%floatD8@@@A@@@@@Y@@@*floatarrayQ8@@@A@@@@@]@@@#intA8@@@A@@@@@a@A@%int32L8@@@A@@@@@e@@@%int64M8@@@A@@@@@i@@@&lazy_tN8@@O@A@A@Y@@@@@r@@@$listI8@@P@A"[]a@@@"::b@@@Q@@@ @@A@Y@@@@@@@@)nativeintK8@@@A@@@@@@@@&optionJ8@@S@A$Nonec@@@$Somed@@@@@A@Y@@@@@@@@&stringO8@@@A@@@@@@@@$unitF8@@"()`@@@@@A@@@@@@A@ .Assert_failure\ p@@@@Jm@@@@@@V@@A͠=ocaml.warn_on_literal_patternѐ@@0Division_by_zeroY @@@Aנ  @+End_of_fileX !@@@Aߠ@'FailureU )@%@@A蠰@0Invalid_argumentT 2@.@@A񠰠$#@-Match_failureR ;@:67@@\@@A21@ )Not_foundV I@@@A: 9 @-Out_of_memoryS Q@@@ABA@.Stack_overflowZ Y@@@AJI@.Sys_blocked_io[ a@@@AR"Q"@)Sys_errorW i@e@@A([+Z+@:Undefined_recursive_module] r@qmn@@c@@A6i9h9@ %bytesC8@@@A@@@@@=@@@&Stdlib@A6A(!t A>U?U@@8@@@A@@@@@BU@@@@Y@@@A@@@A@A((raw_data BNWOW@@8@@@A@@@@@@@WWXW@@@@oA@@Aг )nativeintaW @@0_^^_____@_+%8@@@A"@@C@C@@@@@@@@@A @@@@0kjjkkkkk@ @A@$repr xYyY@б@А!a@C@0@"<6@AYY@@гR!tYY@@ @@@@@@@@@@)%identityAA @@@YY@@B@@@!#objZZ@б@гz!tZZ@@ @@@0@:K&@A@@А!a@C@ ZZ@@@ @@@@)%identityAA5@@@ZZ@@C@@@%magic[[@б@А!a@C@0@1F!@A[ ["@@А!b@C@ [&[(@@@ @@@@)%identityAAg@@@[[6@@D@@@(is_block\7L\7T@б@гࠐ!t\7W\7X@@ @@@0      @7H%@A@@г$bool-\7\.\7`@@ @@@@@@@@@@@8\77 @&inline>\7=?\7C@&alwaysJ\7DK\7J@@@@@@N\7;O\7K@@fE@$@/&is_intZ]aj[]ap@б@г'!te]asf]at@@ @@@0gffggggg@H]6@A@@гC$boolt]axu]a|@@ @@@@@@@@@@+%obj_is_intAA@@@]aa]a@@F@@@#tag^^@б@г]!t^^@@ @@@0@7L%@A@@гT#int^^@@ @@@@@@@@@@,caml_obj_tagA@@@@^^@'noalloc^^@@^ @@G@@ ($size__@б@г!t__@@ @@@0@AV/@A@@г#int__@@ @@@@@@@@@@)%obj_sizeAAZ@@@__@@H@@@/reachable_words``@б@гӠ!t``@@ @@@0@7L%@A@@гʠ#int ` !` @@ @@@@@@@@@@8caml_obj_reachable_wordsAA@@@/`0`)@)ocaml.docA  Computes the total size (in words, including the headers) of all heap blocks accessible from the argument. Statically allocated blocks are excluded, unless the runtime system was configured with [--disable-naked-pointers]. @since 4.04 >a*,?h6:@@@@@@@VI@@-%fieldKj<ELj<J@б@г!tVj<MWj<N@@ @@@0XWWXXXXX@F[4@A@@б@г#intgj<Rhj<U@@ @@@@@г6!ttj<Yuj<Z@@ @@@@@@@@!@@@'@@$* @@*%obj_fieldBA@@@@j<<j<i@@J@@@1)set_field{  {  @б@гa!t{  {  @@ @@@0@J_&@A@@б@гZ#int{  {  @@ @@@@@б@г!t{  #{  $@@ @@@ @@г%$unit{  ({  ,@@ @@@-@@@@@0@@@%@@3( @@@9@@6<@@.%obj_set_fieldCAB@@@@@{  {  ?@  When using flambda: [set_field] MUST NOT be called on immutable blocks. (Blocks allocated in C stubs, or with [new_block] below, are always considered mutable.) The same goes for [set_double_field] and [set_tag]. However, for [set_tag], in the case of immutable blocks where the middle-end optimizers never see code that discriminates on their tag (for example records), the operation should be safe. Such uses are nonetheless discouraged. For experts only: [set_field] et al can be made safe by first wrapping the block in {!Sys.opaque_identity}, so any information about its contents will not be propagated. lkkz  @@@@@@@K@@Q'set_tag| @ I| @ P@б@гʠ!t| @ S | @ T@@ @@@0        @j4@A@@б@гà#int| @ X| @ [@@ @@@@@г$unit&| @ _'| @ c@@ @@@@@@@@!@@@'@@$* @@0caml_obj_set_tagBA@@@@9| @ @:} y @0ocaml.deprecated@} y ~A} y @5Use with_tag instead.K} y L} y @@N} y O} y @@@@@Q} y {@@hL@@H,double_field]  ^  @б@г*!th  i  @@ @@@0jiijjjjj@av=@A@@б@г##inty  z  @@ @@@@@г8%float    @@ @@@@@@@@!@@@'@@$* @@@  @&inline    @&always    @@@@@@    @@M@'@A0set_double_field@  @  @б@г!t@  @  @@ @@@0@Zo6@A@@б@г|#int@  !@  $@@ @@@@@б@г%float@  (@  -@@ @@@ @@гG$unit@  1@  5@@ @@@-@@@@@0@@@%@@3( @@@9@@6<@@@@  @&inline@  @  @&always@  @  @@@@@@@  @  @@-N@*@S)raw_field!C M V"C M _@б@г!t,C M b-C M c@@ @@@0.--.....@l6@A@@б@г砐#int=C M g>C M j@@ @@@@@г(raw_dataJC M nKC M v@@ @@@@@@@@!@@@'@@$* @@2caml_obj_raw_fieldBA@@@@]C M M^C M @@uO@@@1-set_raw_fieldjE  kE  @б@г7!tuE  vE  @@ @@@0wvvwwwww@J_&@A@@б@г0#intE  E  @@ @@@@@б@гG(raw_dataE  E  @@ @@@ @@г$unitE  E  @@ @@@-@@@@@0@@@%@@3( @@@9@@6<@@6caml_obj_set_raw_fieldCA@@@@@E  F  @@P @@@D)new_blockI 2 ;I 2 D@б@г{#intI 2 GI 2 J@@ @@@0@]r'@A@@б@г#intI 2 NI 2 Q@@ @@@@@г!tI 2 UI 2 V@@ @@@@@@@@!@@@'@@$* @@.caml_obj_blockBAb@@@@I 2 2I 2 i@@Q@@@1#dupJ j sJ j v@б@гܠ!tJ j yJ j z@@ @@@0@J_&@A@@г렐!t)J j ~*J j @@ @@@@@@@@@@,caml_obj_dupAA@@@8J j j9J j @@PR@@@(truncateEK  FK  @б@г!tPK  QK  @@ @@@0RQQRRRRR@7L%@A@@б@г #intaK  bK  @@ @@@@@гǠ$unitnK  oK  @@ @@@@@@@@!@@@'@@$* @@1caml_obj_truncateBA@@@@K  L  @0ocaml.deprecatedL  L  @@L   @@S@@ ;*add_offsetGM  M  @б@гe!tM  M  @@ @@@0@Ti0@A@@б@г%Int32!tM  M  @@ @@@-@@г!tM  M  @@ @@@.!@@@@@/$@@@*@@0'- @@3caml_obj_add_offsetBA7@@@@M  M  "@@T@@@4(with_tagHO @ IO @ Q@б@г#intO @ TO @ W@@ @@@10@Mb&@A@@б@г !tO @ [O @ \@@ @@@2@@гϠ!t O @ `O @ a@@ @@@3@@@@@4!@@@'@@5$* @@1caml_obj_with_tagBA@@@@ O @ @!O @ w@@8U@@@1 "first_non_constant_constructor_tagI-R  .R  @гࠐ#int6R  7R  @@ @@@6087788888@H]$@A@@@@R   @@WV@ @@ !last_non_constant_constructor_tagJKS  LS  @г#intTS  US  @@ @@@70VUUVVVVV@2@A@@@^S   @@uW@ @@(lazy_tagKiU  jU  @г#intrU  sU  @@ @@@80tssttttt@2@A@@@|U   @@X@ @@+closure_tagLV V  @г:#intV V @@ @@@90@2@A@@@V   @@Y@ @@*object_tagMWW @гX#intW#W&@@ @@@:0@2@A@@@W @@Z@ @@)infix_tagNX'+X'4@гv#intX'7X':@@ @@@;0@2@A@@@X'' @@[@ @@+forward_tagOY;?Y;J@г#intY;MY;P@@ @@@<0@2@A@@@Y;; @@ \@ @@+no_scan_tagPZQUZQ`@г#intZQc ZQf@@ @@@=0        @2@A@@@ZQQ @@)]@ @@,abstract_tagQ[gk[gw@гР#int&[gz'[g}@@ @@@>0(''(((((@2@A@@@0[gg @@G^@ @@*string_tagR;\~<\~@г#intD\~E\~@@ @@@?0FEEFFFFF@2@A@@@N\~~ @@e_@ @@*double_tagSY]Z]@г #intb]c]@@ @@@@0dccddddd@2@A@@@l] @@`@ @@0double_array_tagTw^x^@г*#int^^@@ @@@A0@2@A@@@^ @@a@ @@*custom_tagU__@гH#int__@@ @@@B0@2@A@@@_ @@b@ @@)final_tagV``@гf#int` ` @@ @@@C0@2@A@@@`a>@0ocaml.deprecatedaa#@7Replaced by custom_tag.a%a<@@a$a=@@@@@a@@c@@ 'int_tagWc@Dc@K@г#intc@Nc@Q@@ @@@D0@7J5@A@@@c@@ @@ d@ @@/out_of_heap_tagX dRV dRe@г#int dRh dRk@@ @@@E0        @2@A@@@ dRR @@ 1e@ @@-unaligned_tagY %elp &el}@гؠ#int .el /el@@ @@@F0 0 / / 0 0 0 0 0@2@A@@@ 8ell @@ Of@ @@'Closure^C Eg Fg@@БA($infoZD Sh Th@@8@@%arity[@ @@@G `i ai@@ xh)start_env\@ @@@J lj mj@@ i@@A@@@@@ ph qk@@@@ g@ xi@@Ш@г #int i i@@(0        @ReP78@@@A@@@@@@@@@A@@/@F@H@+@''" j@@Ш@г*#int j j@@2@@5@F@K@1@@A@-@@0        @@A.-@$info] l l@б@гs!t l  l @@ @@@W0        @3ic@A@@гm$info l l@@ @@@X@@@@@Y@@@ l @@ j@ @@@{A@0 @@0        @2 @A0        @Q@A g m@@@ g@@5Extension_constructorcE o o4@@БA(!t_F q;B q;C@@8@@@A @@@[@@@@ q;= q;[@@@@ l@@Aг 5extension_constructor q;F @@0        @@A@oH@@@8 'k"8@@@A)@@G@\G@Z@@@@@@@@A@@@@0        @@A @&of_val` %r\b &r\h@б@А!a@gG@c0 . - - . . . . .@)C=@A 4r\k 5r\m@@гI!t =r\q >r\r@@ @@@d@@@@@e@@@ Hr\^ @@ _m@ @@$namea Sss Tss@б@гj!t ^ss _ss@@ @@@h0 ` _ _ ` ` ` ` `@3D@A@@г ʠ&string mss nss@@ @@@i@@@@@j@@@ xssu @&inline ~ss{ ss@&always ss ss@@@@@@ ssy ss@@ n@$@/"idb t t@б@г!t t t@@ @@@k0        @H]6@A@@г ^#int t t@@ @@@l@@@@@m@@@ t @&inline t t@&always t t@@@@@@ t t@@ o@$@/@A@@i@K$@@0        @8M&@A 0        @@A p77 u@@@ o@@5extension_constructord v v@б@А!a@rG@n0        @ @A@@@uN@@@# !p@A v v@@г ̠5extension_constructor v v@@ @@@o@@@$@@p@@@ !v "w;@0ocaml.deprecated (w )w@ $use Obj.Extension_constructor.of_val 3w 4w9@@ 6w 7w:@@@@@ 9w@@ Pq@@=.extension_namee Dx<Q Ex<_@б@г 5extension_constructor Ox<b Px<w@@ @@@s0 Q P P Q Q Q Q Q@Vg7@A@@г &string ^x<{ _x<@@ @@@t@@@@@u@@@ ix<< jy@&inline px<B qx<H@&always |x<I }x<O@@@@@@ x<@ x<P@0ocaml.deprecated y y@ "use Obj.Extension_constructor.name y y@@ y y@@@@@ y/@@ r@21@0G3,extension_idf z z@б@г d5extension_constructor z z@@ @@@v0        @`uN@A@@г g#int z z@@ @@@w@@@@@x@@@ z {8@&inline z z@&always z z@@@@@@ z z@0ocaml.deprecated { {@ use Obj.Extension_constructor.id { {6@@ { {7@@@@@ {/@@ s@21@0G3)EphemeronxG }:A }:J@@Б  , Ephemeron with arbitrary arity and untyped  ~PR ~P@@@@@@0        @f{T@AA(%obj_tgH # $@@8@@@A @@@z@@@@ , -@4 alias for {!Obj.t}  9 :@@@@@@@@@ Qt@@Aг!t C@@0 A @ @ A A A A A@-'8@@@A.@@I@{I@y@@@@# @@@A "@@$!@7$#@A(!thI Y Z@@8@@@A@@@@@ ]@ -> an ephemeron cf {!Ephemeron}  i j@@@@@@@@@ u@@A@@0 i h h i i i i i@UOI@A@&createi w x@б@г ,#int  @@ @@@0        @4.@A@@г8!t  @@ @@@@@@@@@@@  @ l [create n] returns an ephemeron with [n] keys. All the keys and the data are initially empty. The argument [n] must be between zero and {!max_ephe_length} (limits included).   @@@@@@@ v@@%&lengthj  @б@гf!t  @@ @@@0        @>S,@A@@г x#int  @@ @@@@@@@@@@@  @ ; return the number of keys   @@@@@@@ w@@%'get_keyk  @б@г!t  @@ @@@0        @>S,@A@@б@г #int  @@ @@@@@г &option " (@г%obj_t $ %!@@ @@@(@@@@@@- @@@"@@0%@@@6@@39@@@ 7@  ( Same as {!Stdlib.Ephemeron.K1.get_key}  C)+ D)X@@@@@@@ [x@,@F,get_key_copyl OZ` PZl@б@г!t ZZn [Zo@@ @@@0 \ [ [ \ \ \ \ \@_t,@A@@б@г #int kZs lZv@@ @@@@@г 점&option xZ yZ@г_%obj_t Zz Z@@ @@@(@@@@@@- @@@"@@0%@@@6@@39@@@ Z\@ e - Same as {!Stdlib.Ephemeron.K1.get_key_copy}   @@@@@@@ y@,@F'set_keym  @б@г_!t  @@ @@@0        @_t,@A@@б@г s#int  @@ @@@@@б@г%obj_t  @@ @@@ @@г >$unit  @@ @@@-@@@@@0@@@%@@3( @@@9@@6<@@@ @ Ɛ ( Same as {!Stdlib.Ephemeron.K1.set_key} @@@@@@@z@ @I)unset_keyn&@б@г!t()@@ @@@0@bw,@A@@б@г Ԡ#int*-+0@@ @@@@@г $unit7488@@ @@@@@@@@!@@@'@@$* @@@E@  * Same as {!Stdlib.Ephemeron.K1.unset_key} Q9;R9j@@@@@@@i{@@7)check_keyo]lr^l{@б@г!thl}il~@@ @@@0jiijjjjj@Pe,@A@@б@г##intylzl@@ @@@@@гU$boolll@@ @@@@@@@@!@@@'@@$* @@@ln@ d * Same as {!Stdlib.Ephemeron.K1.check_key} @@@@@@@|@@7(blit_keyp@б@г^!t@@ @@@0@Pe,@A@@б@гr#int@@ @@@@@б@г~!t@@ @@@ @@б@г#int@@ @@@/@@б@г#int@@ @@@>@@г[$unit@@ @@@K@@@@@N@@@%@@Q( @@@7@@T:@@@I@@WL@@@]@@Z`@@@@ 鐠 ) Same as {!Stdlib.Ephemeron.K1.blit_key} %&&@@@@@@@=}@&@m(get_dataq1(.2(6@б@г㠐!t<(8=(9@@ @@@0>==>>>>>@,@A@@г&optionK(CL(I@г2%obj_tU(=V(B@@ @@@@@@@@@ @@@$@@!'@@@e(*@ 5 ) Same as {!Stdlib.Ephemeron.K1.get_data} qJLrJz@@@@@@@~@)@4-get_data_copyr}|~|@б@г/!t||@@ @@@0@Mb,@A@@г &option||@г~%obj_t||@@ @@@@@@@@@ @@@$@@!'@@@|~@ . Same as {!Stdlib.Ephemeron.K1.get_data_copy} @@@@@@@@)@4(set_datas@б@г{!t@@ @@@0@Mb,@A@@б@г %obj_t@@ @@@@@гK$unit@@ @@@@@@@@!@@@'@@$* @@@@ А ) Same as {!Stdlib.Ephemeron.K1.set_data}   -@@@@@@@$@@@7*unset_datat/5/?@б@гʠ!t#/A$/B@@ @@@0%$$%%%%%@Pe,@A@@г$unit2/F3/J@@ @@@@@@@@@@@=/1 @ + Same as {!Stdlib.Ephemeron.K1.unset_data} IKMJK}@@@@@@@aA@@%*check_datauUV@б@г!t`a@@ @@@0baabbbbb@>S,@A@@г>$boolop@@ @@@@@@@@@@@z @ J + Same as {!Stdlib.Ephemeron.K1.check_data} @@@@@@@B@@%)blit_datav@б@гD!t@@ @@@0@>S,@A@@б@гU!t@@ @@@@@г$unit@@ @@@@@@@@!@@@'@@$* @@@@ * Same as {!Stdlib.Ephemeron.K1.blit_data} !@@@@@@@C@@7/max_ephe_lengthw#)#8@г#int#:#=@@ @@@0@Nc*@A@@@#% @ Đ ` Maximum length of an ephemeron, ie the maximum number of keys an ephemeron could contain >@@@@@@@@D@@@A@A@p@\5@!@}@i@ @@p@@m@Y @ @@]@I4@@0#""#####@8K6@A%0&%%&&&&&@@A+}:L,@@@.}::@@@A@A@@j@]:@-@@@vO@B@  @  m@ Q @  @  Q@ 3 @  @  Y@ K $@  @  @ | C@ 5 @  @  @  @  @  @  x@ q \@ U @@ 9 $@  @ @@@@yd@]H@@@@p@@@@y@@g@H!@@@e@`E@@@0@w@uoA@A;A@%@@g@S @@_@K@@{E@1@@s@_8@$@@@@'@A@ H************************************************************************A@@A@L@ H BMMBM@ H OCaml CC@ H DD3@ H Xavier Leroy, projet Cristal, INRIA Rocquencourt E44E4@ H FF@ H Copyright 1996 Institut National de Recherche en Informatique et GG@ H en Automatique. HHg@ H IhhIh@ H All rights reserved. This file is distributed under the terms of JJ@ H the GNU Lesser General Public License version 2.1, with the KKN@ H special exception on linking described in the file LICENSE. LOOLO@ H MM@ H************************************************************************NN5@ Q* Operations on internal representations of values. Not for the casual user.  - @since 4.12 WW@  * Computes the total size (in words, including the headers) of all heap blocks accessible from the argument. Statically allocated blocks are excluded, unless the runtime system was configured with [--disable-naked-pointers]. @since 4.04 נ * When using flambda: [set_field] MUST NOT be called on immutable blocks. (Blocks allocated in C stubs, or with [new_block] below, are always considered mutable.) The same goes for [set_double_field] and [set_tag]. However, for [set_tag], in the case of immutable blocks where the middle-end optimizers never see code that discriminates on their tag (for example records), the operation should be safe. Such uses are nonetheless discouraged. For experts only: [set_field] et al can be made safe by first wrapping the block in {!Sys.opaque_identity}, so any information about its contents will not be propagated. (/ @since 3.11.2     @/ @since 3.11.2 !A 6 8"A 6 K@- @since 4.12 'D  (D  @- @since 4.12 -G  .G  0@/ @since 3.12.0 3N # ,4N # ?@/ @since 4.09.0 9P x z:P x @; both [string] and [bytes] ?\~@\~@ # should never happen @since 3.11.0 EelFel@ -* Ephemeron with arbitrary arity and untyped 55* alias for {!Obj.t} ?* an ephemeron cf {!Ephemeron} 蠠 * [create n] returns an ephemeron with [n] keys. All the keys and the data are initially empty. The argument [n] must be between zero and {!max_ephe_length} (limits included). <* return the number of keys r )* Same as {!Stdlib.Ephemeron.K1.get_key}  .* Same as {!Stdlib.Ephemeron.K1.get_key_copy}  )* Same as {!Stdlib.Ephemeron.K1.set_key} ^ +* Same as {!Stdlib.Ephemeron.K1.unset_key}  +* Same as {!Stdlib.Ephemeron.K1.check_key} Ơ ** Same as {!Stdlib.Ephemeron.K1.blit_key} D ** Same as {!Stdlib.Ephemeron.K1.get_data}  /* Same as {!Stdlib.Ephemeron.K1.get_data_copy}  ** Same as {!Stdlib.Ephemeron.K1.set_data} f ,* Same as {!Stdlib.Ephemeron.K1.unset_data} , ,* Same as {!Stdlib.Ephemeron.K1.check_data}  +* Same as {!Stdlib.Ephemeron.K1.blit_data}  a* Maximum length of an ephemeron, ie the maximum number of keys an ephemeron could contain ~@D)../ocamlc0-strict-sequence(-absname"-w8+a-4-9-41-42-44-45-48-70"-g+-warn-error"+A*-bin-annot)-nostdlib*-principal,-safe-string/-strict-formats"-o/stdlib__Obj.cmi"-c :/home/barsac/ci/builds/workspace/step-by-step-build/stdlib @0JU#c@0@@@8CamlinternalFormatBasics0cEXy =@@@@  @@@sv@  ~}@ds@@@  ڰ 6 5@@@ V U@;: v t@@Ѱ y x@@  @@@;:@@  @ s r@YX76@@  !EC@ED  @^@@    @ } @@@ @@P@