Caml1999T037H .20C,Stdlib__LazyA+!tA'lazy.mlrr@А!a@3@@@@@@#intA;@@@A@@@@@&_none_@@A@A@$charB;@@A@@@@@@A@&stringQ;@@ A@@@@@ @@@%bytesC;@@A@@@@@@@@%floatD;@@A@@@@@@@@$boolE;@@%falsec@@@$trued@@#@@@A@@@@@$@A@$unitF;@@"()e@@.@@@A@@@@@/@A@ #exnG;@@@A@@@@@3@@@#effH;@@O@A@A@@@@@@<@@@,continuationI;@@Q@@P@B@A@nY@@@@@@K@@@%arrayJ;@@R@A@A@@@@@@U@@@ $listK;@@S@A"[]f@@b@"::g@@@T@@o@ @@A@Y@@@@@r@@@&optionL;@@V@A$Noneh@@@$Somei@@@@@A@Y@@@@@@@@)nativeintM;@@A@@@@@@@@%int32N;@@A@@@@@@@@%int64O;@@A@@@@@@@@&lazy_tP;@@X@AJA@Y@@@@@@@@5extension_constructorR;@@A@@@@@@@@*floatarrayS;@@A@@@@@@@@&iarrayT;@@Y@A[A@Y@@@@@@@@*atomic_locU;@@Z@AdA@@@@@@@@@.Assert_failure`#@@@@@J@@@@@@@@[@@AϠ=ocaml.warn_on_literal_patternӐ@@0Division_by_zero]#@@@A٠  @+End_of_file\#$@@@Aᠰ@'FailureY#,@'@@A꠰@0Invalid_argumentX#5@0@@A󠰠$#@-Match_failureV#>@@=@9@;@@a@@A54@)Not_foundZ#O@@@A =<@-Out_of_memoryW#W@@@AED@.Stack_overflow^#_@@@AML@.Sys_blocked_io_#g@@@A$U'T'@)Sys_error[#o@j@@A-^0]0@:Undefined_recursive_modulea#x@@w@s@u@@h@@A>oAnA@:Continuation_already_takenb#@@@AFwIvI@&Stdlib;@@@A@A@@@@@@G@B@@@rr @@@@@A@@rr@@BA@;@A@A0CamlinternalLazy!tB@@A  &lazy_tP@ @@ @ @@Y@@@@@&@@@#@@Aг0CamlinternalLazyr r @ r 2@3@А!a%°r r @@@0Ű;@@=@@=<@3@@@)UndefinedBt  !t  *@#@@@At  t  G@@AA0CamlinternalLazy)Undefined0CamlinternalLazyt  -t  =@)Undefinedt  >@@@@@3@^@@,make_forwardu H Qu H ]@б@А!a@C@3@82@@u H `u H b@@гJ&lazy_tu H iu H o@А!a!u H f"u H h@@@@@@ @@@!@@@@6caml_lazy_make_forwardAA @@@2u H H3u H @@ABA@@@)%force?v  @v  @б@гJ!tJv  Kv  @А!a@C@3JIIJJJJJ@HY,@@Xv  Yv  @@@ @@@ @@А!a cv  dv  @@@ @@@@+%lazy_forceAA=@@@nv  ov  @@}CA@@@@ఠ)force_val~x  x  @DA@@@ڠ@@C@@@@C@@@C@3@=X+@@@࣠@!lAx  x  @EA@@3@)x  x  @@@@@  @@డ )force_gen0CamlinternalLazyx  x  @ x  x  @@(only_val$boolE@@@@C!a@@@@@@@@@4camlinternalLazy.mliZ  Z <@@C@"@@@@@@XW@@@X@@@@3@COa@F@G@@@(ภ$truex  x  @;@@@M@@@AB@@A@@@ @@8@@@E@ @@ఐm!lx  b@#c@@&@@Td@@'@neA@C@ l@A@i@ih@~@ఠ(from_funz  z  @)FA@@@@@@@#arg@C@@@C@9 C@@@@C@@@C@ 3.--.....@@@@@@࣠@!f A@Gz  Hz  @@@%@@@$@@3CBBCCCCC@9Rz  S} e {@@@@@cGA3б@г6$unitbz  cz  @@>@@@@@А;@kz  lz  @@@ E@@!@@qz  rz  @@@O%@@@@@ఠ!x!{  {  @HA@@&Stdlib#Obj!t@@@E@3@BQI@L@<@@@డ#Obj)new_block{  #{  &@ {  '{  0@@@#intA@@@@@@@0@@@@@@@.caml_obj_blockBA @@@@'obj.mliC I IC I @@+Stdlib__ObjP@&!@@@@@@@@@@J@@@@@@@C@@డY#Obj(lazy_tag{  1{  4@ {  5{  =@@?@@@@.O  /O  @@-X@ @@L@@@F@F@i@@A{  >{  ?@@T@@@F@F@y@@j @@z@A@ {   @@ డ#Obj)set_field| C E| C H@ | C I| C R@@@@@@@@@@@@@@$unitF@@@@@@@@@.%obj_set_fieldCA@@@@@ww@@K@)$@@@@@@@!@@@@@@@ @@@@@@@@@3JIIJJJJJ@@@@@@@ఐ㠐!xb| C Sc| C T@ @@@@@F@F@@@@s| C Ut| C V@@P@@@F@F@'@@డ#Obj$repr| C X| C [@ | C \| C `@@@!a@@@@@@)%identityAA@@@YY@@B@@@@@@@@@@F@*@@@@@]@@ఐx!f| C a| C b@-@@j@@| C W| C c@@A@@@@G@t@@ @@t@@@E@{@డV#Obj#obj} e h} e k@ } e l} e o@@@b@@@!a@{@@)%identityAA6@@@4Z5Z@@3C@@@@t@@@̠@@@E@@@@@ఐ!x } e p } e q@@@@@@E@E@@@: @г蠐!t } e y!} e z@А#argѰ'} e t(} e x@@@@@@ذ @@/} e g@@@@@@@(@@@A@C@@A@@@@ఠ(from_valrA } B } @PIA@@@#arg@C@X C@@@@C@@@C@3LKKLLLLL@C<@=@>@@@࣠@!vtA@e } f } @@C@3]\\]]]]]@,l } }mF b g@@@@  @}JA  А(w } x } @@z } { } @@@@@@@@ఠ!tu@  @  @KA@@@@@%E@3@+6.@1@%@@@డ#Obj#tag@  @  @ @  @  @@@'@@@!@@@@@,caml_obj_tagA@@@@^||^|@'noalloc^|^|@@^| @@G@#@@@B@@@<@@@@@;@@డV#Obj$repr@  @  @ @  @  @@Q@@@C@C@,e@@@+@@*[@@ఐ!v@  @  @e@@h@@@  @  @@|@@@&@6G@5r@@c @@ws@A@@   @@డ"||A  A  @@$boolE@@@P@@@@O @@@N@@M@@L'%sequorBA @@@@*stdlib.mli@@^@! @@@@@@<@@@@;@@@:@@9@@8354455555@@@@@@@డ!=OA  PA  @@!a@@C@@@'@@&@@%&%equalBA7@@@@6y7y@@Q@@@@@@@VE@M@@@@L@@K@@J4@@ఐ!t~A  A  @>@@A@@డ#Obj+forward_tagA  A  @ A  A  @@@@@@S % %S % :@@\@ @@6F@Wb@@%@@@@@H@XF@Uj@@డ2A  A  @@@@@@@^@@@@]@@@\@@[@@Z@@డMA  A  @@@@I@@@xF@o@@@@n@@m@@l@@ఐa!tA  A  @@@@@డs#Obj(lazy_tagA  A  @ A  A  @@@@-G@y@@@@@@@j@zG@w@@డB  B  @@@@@@@@@@@@@@~@@}@@|@@డ䠐2B  3B  @@@@@@@G@@@@@@@@@@@ఐà!tKB  LB  @ @@@@డ#Obj+forcing_tag\B  ]B  @ `B  aB  @@@@@@M  M  @@V@ @@6H@/@@%@@]@@@@H@7@@డ46B  B  @3@@@@@@G@@4@@@@@@@Q@@ఐ!tB  B  @[@@^@@డ%#Obj*double_tagB  B  @ B  B  @@ @@@@W  W  @@`@ @@6H@@@%@@@@@@H@@@}@@@@@i@G@@@@@@@@G@F@h@@Z'@@@@@E@F@ఐ堐,make_forwardC # 'C # 3@@@@٠@@@@@@@ఐ!vC # 4C # 5@h@@@@B  D 6 ;@@C@@డ#Obj%magicE G LE G O@ E G PE G U@@@!a@y!b@x@@)%identityAAi@@@g[h[6@@fD@@@@ݠ@@@E@@@@@ఐڠ!v<E G V=E G W@@@@@1@г!tIE G _JE G `@А#argPE G ZQE G ^@@@@@@ @@XD 6 A@@@@ZA  @@[@V@@\@A@C@@A@@@ @ఠ&is_valvkH i mlH i s@zLA@@@|#arg@C@@@@C@k@@@C@@@C@3{zz{{{{{@0KD@E@F@@@࣠@!lxA@H i uH i v@@! @@@3@4H i iH i @@@@ @MA.г1!tH i ~H i @А38H i yH i }@@@?>@@@ @@H i tH i @@@G"@@@@డC"<>H i H i @@!a@@P@@@*@@)@@()%notequalBA@@@@~QQ~Q@@SR@@@@U@@@ D@@f@@@@@@@3@R`X@[@L@@@@డw#Obj#tagH i H i @  H i  H i @@\@@@@@@}@@@@@#@@డ#Obj$repr H i  H i @  "H i  #H i @@@@@@@@ F@ @@@ @@ F@@ఐ!l ;H i  <H i @P@@S@@ ?H i  @H i @@@@@ @ G@ ]@@K @@f^@@డ#Obj(lazy_tag WH i  XH i @  [H i @@v@@}E@ u@@c@@v@A@C@ @A@@@ߠ@ఠ#mapy pJ   qJ  @ NA@@@@@@ )@@ &C@ *A@ +C@ @FC@ .@@@ ;C@ !Ƞ@@@ 'C@ "@@ #C@ @@ C@ 3        @1*@+@,@@@࣠@!f{A J   J  @ OA@@03        @= J   K  @@@@@  @@!x|A J   J  @ PA@@53        @!G@@@@@@@@ఐ+!f K   K  @@@W3        @ K@@@@@@ఐ%force K   K  @x@@@Z@@@ /[@@ -@@ఐM  @ LRA@@/3 6 5 5 6 6 6 6 6@< EM   FP  $@@@@@  @@!xA QM   RM  @ `SA@@33 J I I J J J J J@!F@@@@@@@@ఐ&is_val eN   fN  @ϰ@@@F@@@ Z@@@ Y@@ X3 f e e f f f f f@)R@ @!@@@@ఐ0!x ~N   N  @ @@_@@@@@@@ vF@ a@ఐO(from_val O   O  @ @@@yD|@@@ y@@ x(@@ఐk!f O   O  @P@@7@@ఐu%force O   O  @N@@@vC@ @@@ @@ N@@ఐ{!x O   O  @X@@[@@ O   O  @@^@@ O   O  @@a@@C@@b@ఐ!f P   P  @@@q@@ఐ%force P   P  @@@@@@@ @@ @@ఐ!x P  ! P  "@@@@@ P   P  #@@@@ P  @@@ P  @@@ N  @@@A@C@ @A@@@@  wA@ = 7B@ @@@@@@@@@@@3        @"@@@,Stdlib__LazyH@@G@@%F@@ E@@ʱ D@@ȱC@@ͱB@@ ]A@@ @@@ H************************************************************************ HA@@ IA@L@ H  NBMM OBM@ H OCaml  TC UC@ H  ZD [D3@ H Damien Doligez, projet Para, INRIA Rocquencourt  `E44 aE4@ H  fF gF@ H Copyright 1997 Institut National de Recherche en Informatique et  lG mG@ H en Automatique.  rH sHg@ H  xIhh yIh@ H All rights reserved. This file is distributed under the terms of  ~J J@ H the GNU Lesser General Public License version 2.1, with the  K KN@ H special exception on linking described in the file LICENSE.  LOO LO@ H  M M@ H************************************************************************ N N5@ & Module [Lazy]: deferred computations  P77 P7a@ u WARNING: some purple magic is going on here. Do not take this file as an example of how to program in OCaml.  Sdd V@  We make use of two special tags provided by the runtime: [lazy_tag] and [forward_tag]. A value of type ['a Lazy.t] can be one of three things: 1. A block of size 1 with tag [lazy_tag]. Its field is a closure of type [unit -> 'a] that computes the value. 2. A block of size 1 with tag [forward_tag]. Its field is the value of type ['a] that was computed. 3. Anything else except a float. This has type ['a] and is the value that was computed. Exceptions are stored in format (1). The GC will magically change things from (2) to (3) according to its fancy. If OCaml was configured with the -flat-float-array option (which is currently the default), the following is also true: We cannot use representation (3) for a [float Lazy.t] because [caml_array_make] assumes that only a [float] value can have tag [Double_tag]. We have to use the built-in type constructor [lazy_t] to let the compiler implement the special typing and compilation rules for the [lazy] keyword.  Y p@@?)../ocamlc0-strict-sequence(-absname"-w5+a-4-9-41-42-44-45-48"-g+-warn-error"+A*-bin-annot)-nostdlib*-principal"-o0stdlib__Lazy.cmo"-c  D/builds/workspace/precheck/flambda/false/label/ocaml-linux-32/stdlib @@0ل+b Y3        @ @@8CamlinternalFormatBasics0%FU(Q/Tu 0&͂7 Pˆ&Stdlib0Lku]8_٠-Stdlib__Int320 u& 0* -S$.)"0D+Stdlib__Obj0]'kZ<@@ALCđ@ r @@@  @@ O @ h r@ޑ@|@  @s}@lv@@@@@P @ 'F @@@A @ @@@ @ @@@A@@@@B@@@@CD@@@@@@@@@@@@A "A @@@BCE@@