Caml1999T031Y3B@<0CamlinternalLazyA(!t A3camlinternalLazy.mlR`hR`i@А!a@0@@@@@@%arrayH8@@M@A@A@@@@@@&_none_@@A@@@ $boolE8@@%false^@@ @$true_@@@@@A@@@@@@A@$charB8@@@A@@@@@@A@#exnG8@@AA@@@@@@@@5extension_constructorP8@@@A@@@@@ @@@%floatD8@@@A@@@@@$@@@*floatarrayQ8@@@A@@@@@(@@@#intA8@@@A@@@@@,@A@%int32L8@@@A@@@@@0@@@%int64M8@@@A@@@@@4@@@&lazy_tN8@@O@A@A@Y@@@@@=@@@$listI8@@P@A"[]a@@J@"::b@@@Q@@W@ @@A@Y@@@@@Z@@@)nativeintK8@@@A@@@@@^@@@&optionJ8@@S@A$Nonec@@k@$Somed@@r@@@A@Y@@@@@u@@@&stringO8@@@A@@@@@y@@@$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@@\@@Aʠ21@ )Not_foundV I@@@AҠ:9@-Out_of_memoryS Q@@@AڠBA@.Stack_overflowZ Y@@@A⠰JI@.Sys_blocked_io[ a@@@A꠰RQ@)Sys_errorW i@e@@A󠰠[Z@:Undefined_recursive_module] r@qmn@@c@@Aih@ %bytesC8@@@A@@@@@@@@&StdlibE8@@@A@AO@B@@@B@B@G@B@@@RR``SR`u@@@@a@@@VR`eWR`g@@BA@8S@A@AZC@@@@Y@@@@@@@@@@Aг &lazy_tlR`o@А!afrR`lsR`n@@@i"@@$@@$#@0kjjkkkkk@h@@)Undefined BTwTw@ @@@ATww@@A@@@@T@ @0~~@}3@@@ࠠ/raise_undefined VV@@@&Stdlib#Obj!t@@@C@0@,&@@@డp#Obj$reprVV@@!a@.!@@@4@@3)%identityAA @@@'obj.mliYY@@+Stdlib__ObjB@@@@(@@C@C@@C@C@@C@C@@@@C@@C@9@@@%paramhĠ"()VV@8;@@@U@@@@A@@A@@=@@@@$P@@డ%raiseVV@@#exnG@@@!a@@@&%raiseAA @@@*stdlib.mli^BB^Bg@@v@@@@@@E@JC@E@@E@|@@ภ)Undefined+V,V@8s@@@@@@A@A@@@ @@2@@F@F@@@;@@@@A;VB[>R@@@@B#arg@C@@@@C@@@C@0@Wo.@@@@#blkl@[>T[>W@@@@@0@+[>>o@@@@ @г(&lazy_t[>_[>e@А*/[>Z[>^@@@65@@@ @@[>S[>f@@@>!@@@@\io\iv@@@G@@@PC@C@C@TC@@@0@9H?@B@E@@@'closurem@б@г$unit\i\i@@ @@@@@А#arg#\i\i@@@ (@@!@@21A@@@0@@@/@@(@డ#Obj#obj2\iz3\i@@@@@6!a@*@@5)%identityAA~@@@}Z~Z@@|C@@@@@E@@@@D@aC@C@@D@D@E@@E@[@@డ$#Obj%fieldh\ii\i@@@@@K@#intA@@@J@@@I@@H@@G*%obj_fieldBA@@@@j<<j<i@@J@@@@@F@@@@F@@@F@@F@@F@@@డ]#Obj$repr\i\i@@@@@@G@G@@@G@@G@@@ఐ#blk\i\i@@@@@\i\i@@#@@G@@@@\i\i@@]@@G@G@G@@@\i\i@@9@@F@@@@б@г@@@@@А@@@@@\iy\i@@@D@@@\ik@@డ#Obj)set_field]]@@e@@@R@@@@Q@p@@@P$unitF@@@O@@N@@M@@L.%obj_set_fieldCAU@@@@@V{  W{  ?@@UK$#@@@@@D@!@!@@D@ @@@D@ @@D@@D@@D@@D@0'&&'''''@52D@G@BF@@@@డ#Obj$reprE]F]@@@@@@E@DE@8@@E@7@E@6!@@ఐ#blk]]^]@_@@.@@a]b]@@@@E@A4@@@m]n]@@m@@E@1E@LE@KD@@ఐ預/raise_undefined]]@"@@@@E@0E@PE@OX@@ @@@@C@SD@/_@@ࠠ&resultn__@@@0@n@@@ఐ'closure__@x@@@@@D@W@D@V@@ภͰ__@@@@@@E@\E@`"@@@@#@@_ @@ఐ,make_forward`  ` @J@@@@@D@h@u@@D@gh@@D@f@D@e@D@d0@I@D@G@@@@డ#Obj$repr` ` #@?@@@QP@@E@E@zb@@E@y@E@x!@@ఐO#blk ` $ ` '@ @@.@@` ` (@@u@@E@4@@డ#Obj$repr#` *$` 2@o@@@-@@E@@E@K@@ఐ&result5` 36` 9@U@@?X@@9` ):` :@@@@E@^@@o@@@@C@D@rd@ఐ&resultKa<@La<F@k@@Un@@@Vo@@@W@ࠠ!eoXbGNYbGO@@@@@D@@@@ࠠ'raise_ephcS[icSb@@@@@@D@0eddeeeee@?@@@@@H@@@డ?#Obj$reprcSecSm@ϰ@@@@@@D@D@@D@D@@D@D@@@D@@D@(@@@qĠcSscSu@@@@@8@@డo%raisecSycS~@@@@@@F@,D@F@@F@M@@ఐo!ecScS@W@@@@G@G@G@a@@! @@b@@AcSncS@@MD@g@@U@@kh@@cSW@@@ࠠ#tagrii@@@w@@@D@0@~@@I@@@డ#Obj#tagii@@f@@@@@@@?@@>,caml_obj_tagA@H@@@G^H^@'noallocN^O^@@R^ @@PG@@@@@D@7@@D@@D@6@@డ#Obj$repr2i3i@~@@@@@E@E@@@E@@E@S@@ఐ#blkJiKi@L@@`@@NiOi@@@@E@f@@W@@kg@@Ui@@డ!"<>cjdj@@!a@@$boolE@@@*@@)@@()%notequalBAf@@@@fg@@R@@@@@D@ D@@@@D@@D@@D@0~~@@@J@@@@ఐ#tagjj@@@@@డd#Obj(lazy_tagjj@9@@@@U  U  @@X  @@4E@ ,@@@@@@D@ E@ 3@డ%raisembhmbm@ǰ@@@@@D@ E@@C@ D@ D@ @D@ K@@ภ)Undefinedmbnmbw@@@@@@E@ E@ \@@!@@]@@j @@_@డ#Obj)set_fieldny}ny@@@@`@@D@ #@@@D@ "@j@@D@ !@@D@ @D@ @D@ @D@ @@డ#Obj$reprnyny@g@@@yx@@E@ FE@ :@@E@ 9@E@ 8@@ఐw#blk3ny4ny@5@@@@7ny8ny@@@@E@ C@@@CnyDny@@C@@E@ 3E@ NE@ M@@ఐ'raise_eVnyWny@i@@@@E@ 2E@ RE@ Q@@j @@@@C@ UD@ 1@డ-%raiseoopo@p@@@p@@C@ Y~C@C@ X@C@ W@@ఐ-!eo@@@@@D@ ^D@ `D@ _@@ @@@@@@@@@=@@@@@#@@^@@0@c@@@@@@@@@@AA@@@@ c0@@@@@@@頰@ࠠ4force_val_lazy_blocksss@@@@J#arg@ fC@ h@@@ nC@ e@@ gC@ d0@ "@@D@@@@#blku@ss@@@@@ o0@-sx  @@@@ @г*&lazy_ts s @А,1ss @@@87@@@ j @@ss @@@@!@@@@t  t  @@@Q@@@ }RC@ rC@ HC@ C@ u@@ |0@9H?@B@L@@@'closurev@б@г$unitt  Ft  J@@ @@@ t@@А#arg#%t  N&t  R@@@ (@@ v!@@21A@@@0@@@ /@@ ~(@డ#Obj#obju W @߰@@@@E@ E@ E@ X@@n @@@@C@ D@ ^@@ࠠ&resultw Wv   Xv  @@@W0 O N N O O O O O@k@@@ఐT'closure dv   ev  @u@@@l@@D@ k@D@ @@ภ tv   uv  @@@@|@@E@ E@ "@@@@|#@@ ~v   @@ఐ?,make_forward w   w  @@@@@@@D@ @/@@D@ "@@D@ @D@ @D@ 0        @I@D@ N@@@@డi#Obj$repr w   w  @@@@@@E@ @@@@<@<;@T@ࠠ%forcex      @@@@ #arg@ aC@ c@@@ iC@ `@@ bC@ _0 $ # # $ $ $ $ $@t@@ ?K@@@@#lzvz@ =   >  @@@@@ j0 8 7 7 8 8 8 8 8@- G   HL 1 L@@@@ @г*&lazy_t T   U  @А,1 Z   [  @@@87@@@ e @@ b   c  @@@@!@@@ࠠ#lzv{ nG f l oG f o@@@ON@@@ D@ n0 l k k l l l l l@5D;@>@ P@@@డ C#Sys/opaque_identity G f r G f @@!a@ q@@ '%opaqueAA @@@'sys.mliy/)/)y/)/X@@+Stdlib__SysS@@@-D@ @D@ )@@ఐq#lzv G f  G f @3@@:6@@'@@7@@ G f h@@@ࠠ!xŠ H   H  @@@ #@@@ D@ 0        @LZT@U@ Q@@@డ #Obj$repr H   H  @ @@@@@D@ D@  A@@D@ @D@ @@ఐ|#lzv H   H  @(@@+@@@@/,@@ H  @@@ࠠ!tƠ I   I  @@@@@@ D@ 0        @ANH@I@ R@@@డ #Obj#tag I   I  @@@@ {@@D@ 1@@D@ @D@ @@ఐm!x 'I   (I  @%@@ @@E@ E@ E@ /@@  @@30@@ 3I   @@డ != ?J   @J  @@!a@@@@@'@@&@@%&%equalBA @@@@@ @y Ay@@ Q@@@s@@C@ C@ @@@C@ @C@ @C@ 0 Y X X Y Y Y Y Y@cpj@k@ tS@@@@ఐx!t rJ   sJ  @@@@@డ >#Obj+forward_tag J   J  @@@@@ Y;; Y;P@@ \  @@4D@ ,@@@@@@C@ D@ 2@డ ^#Obj#obj J   J  @p@@@ @@C@ C@ C@ mC@ gC@ @C@ M@@డ |#Obj%field J   J  @X@@@ )@@D@ @X@@D@  1@@D@ @D@ @D@ l@@ఐ !x J   J  @ذ@@ E@@E@ E@ E@ @@@ J   J  @@@@E@ E@ E@ @@ J   J  @@ [@@D@ @@Y@А#argSC@  J   J  @@ J   J  @@@@డ "<> K   K  @@@@2@@C@ C@ @@@C@ @C@ @C@ @@ఐ3!t -K   .K  @ɰ@@@@డ #Obj(lazy_tag =K   >K  @@@'D@ @@@@@@C@ D@ @డ #Obj#obj TK   UK  &@ "@@@ @@C@ C@ @C@ @@ఐ!x hK  ' iK  (@f@@ @@D@ D@ D@ @@ @А#argC@  {K  + |K  /@@ ~K   K  0@@@@ఐ ꠐ0force_lazy_block L 1 8 L 1 H@ΰ@@@ @@C@ @C@ /@@ఐ/#lzv L 1 IV@ڰW@@ @@D@ D@ D@ C@@`@@D@ K  b@@1F@ J  d@@H@ze@@@f@@@g@@8@@ANhA@@@@ 0        @o@@@@m@ml@@ࠠ)force_valǠ O O S O O \@@@@ a#arg@ C@ "@@@ (C@ @@ !C@ 0        @@@ O@@@@#lzvɠ@ O O ^ O O a@@@@@ )0        @- O O O T6@@@@ @г*&lazy_t O O i O O o@А,1 O O d O O h@@@87@@@ $ @@ O O ] O O p@@@@!@@@ࠠ!xʠ P s y P s z@@@ {@@@ :D@ -0        @4C:@=@ *U@@@డ #Obj$repr *P s } +P s @ v@@@ih@@D@ =D@ 1 @@D@ 0@D@ /@@ఐe#lzv BP s  CP s @(@@+@@@@/,@@ GP s u@@@ࠠ!tˠ RQ   SQ  @@@n@@@ ID@ ?0 O N N O O O O O@ANH@I@ jV@@@డ &#Obj#tag jQ   kQ  @m@@@ @@D@ C@@D@ B@D@ A@@ఐm!x Q   Q  @%@@ @@E@ JE@ NE@ M/@@  @@30@@ Q   @@డ UXZ R   R  @W@@@@@C@ ]C@ T@X@@C@ S@C@ R@C@ Q0        @LYS@T@ W@@@@ఐa!t R   R  @@@@@డ #Obj+forward_tag R   R  @A@@+D@ ^#@@@@@@C@ `D@ \)@డ #Obj#obj R   R  @ @@@ C@@C@ fC@ C@ ,C@ &C@ e@C@ dD@@డ #Obj%field R   R  @ @@@ a@@D@ s@ @@D@ r i@@D@ q@D@ p@D@ oc@@ఐ!xR  R  @@@ }@@E@ E@ E@ w@@@#R  $R  @@ @@E@ E@ E@ @@-R  .R  @@ @@D@ @@Y@А#argSC@ a;R  <R  @@>R  ?R  @@@@డ "<>LS  MS  @@@@j@@C@ C@ @@@C@ @C@ @C@ @@ఐ!teS  fS  @@@@@డ 1#Obj(lazy_taguS  vS  @Ͱ@@'D@ @@@@@@C@ D@ @డ H#Obj#objS S  @ Z@@@ @@C@ C@ @C@ @@ఐ!xS  S @F@@ @@D@ D@ D@ @@ @А#argC@  S S @@S S @@@@ఐ4force_val_lazy_blockTT2@@@@@@C@ @C@ &@@ఐ#lzvT3@@@*@@D@ D@ D@ :@@@@;@S  @@1=@R  @@?@Z@@@@@@@AA@@#@@ 0@@@@@@@@ A@ s mB@ ^ @  k@ Y7@S@$@@:@;@ T@@0@+D@@@&lazy_tN!a@ @@@ @@ @4camlinternalLazy.mli]TT]Ts@@0CamlinternalLazyEB@!a@ @@@ @@ @\88\8S@@D@(!a@ @@@ @@ @&Z  'Z 6@@%C}@:!a@ @@@ @@ @8X9X @@7B@ H************************************************************************OA@@PA@L@ H UBMMVBM@ H OCaml [C\C@ H aDbD3@ H Damien Doligez, projet Para, INRIA Rocquencourt gE44hE4@ H mFnF@ H Copyright 1997 Institut National de Recherche en Informatique et sGtG@ H en Automatique. yHzHg@ 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@ # Internals of forcing lazy values. P77P7^@ ' Assume [blk] is a block with tag lazy ZZ=@  The allocation of [raise_e] below can result in concurrent/asynchronous code execution, and modify [blk] itself. We protect against this scenario by checking that the [set_field] below only happens on [Lazy_tag] blocks, to preserve type-safety. dh@ o #13434: at this point we believe that [e] must be [Undefined], but the reasoning is rather delicate. kl#a@ ' Assume [blk] is a block with tag lazy rr@ [force] is not used, since [Lazy.force] is declared as a primitive whose code inlines the tag tests of its argument, except when afl instrumentation is turned on. {  } m @  Using [Sys.opaque_identity] prevents two potential problems: - If the value is known to have Forward_tag, then its tag could have changed during GC, so that information must be forgotten (see GPR#713 and issue #7301) - If the value is known to be immutable, then if the compiler cannot prove that the last branch is not taken it will issue a warning 59 (modification of an immutable value) @  F , e@@H+../ocamlopt0-strict-sequence(-absname"-w8+a-4-9-41-42-44-45-48-70"-g+-warn-error"+A*-bin-annot)-nostdlib*-principal,-safe-string/-strict-formats2-function-sections/-afl-inst-ratio!0"-cڐ :/home/barsac/ci/builds/workspace/step-by-step-build/stdlib @09Is]*_Ÿ0@@@8CamlinternalFormatBasics0cEXy