Caml1999I037Hn)Lift_code&lifter;@@@A@'Flambda'program@@@@@'program@@@@@@@@@ middle_end/flambda/lift_code.mliSS@@@@@@A@)lift_lets$@@@@]]@@,A@@.lift_lets_expr@)!t@@@@@(toplevel$boolE@@@@@;!t@@@@@@@@3_4_W@@QB@@.lifting_helper@$listKT!t@@@@@@@@0evaluation_orderР-Right_to_left@-Left_to_right@@@@A@@@@@+create_body@)(Variable!t@@@@@@@@!t@@@@@@@$name7Internal_variable_names!t@@@@@!t@@@@@@@@@@@@fkDR@@C@@@@)Lift_code0n *Ƴc$C-QU(Warnings0Ef{&(Variable0?l猵eY2Var_within_closure0``ݗXFR⠠)Unit_info0'T Χ@aR%Types0"|Vȷ`X .Type_immediacy00$ jbv\"k&#Tag0&b rٍ&Symbol03E?Y7(%Subst0=aqT/!p+-Stdlib__Uchar0=H^V9>ɠ+Stdlib__Sys0b'8=OIn.Stdlib__String0 w_OA4D"Q~~+Stdlib__Set0ܔ@Z8XWaa2+Stdlib__Seq0?72#[O.Stdlib__Result0p~ !ԥ//+Stdlib__Map0*4ɇ2.Stdlib__Domain0'Ϳo\0m.K.Stdlib__Digest0#z25I*.Stdlib__Buffer0,I[?z&Stdlib0t0VoS%{<F:0Static_exception0Jmyrqܒx-8ɞ%Shape0 M``ll6Set_of_closures_origin0!YA _XO 2Set_of_closures_id0LbO`ܩ&M*Projection02hS xj56)Primitive0dU=\I/}$Path0k.tbGmᠠ)Parsetree0v o[pY Y)Parameter0zk^f2my19+Outcometree0BuG^)= 9c 'Numbers0 q޷He0Mutable_variable0CQᷧ$$Misc0Bpg]?[q)Longident0wP q;ɡ(Location0nBɊOn?7~ؠ)Load_path0,j " nn7ݠ,Linkage_name0tԈK1G&Lambda0x_edT-uq7Internal_variable_names0TbgѹG+L,Identifiable0]/*N %Ident0>ЃzV)j⠠*Format_doc0uy@GmWUࠠ'Flambda0VJ͟#Env0S B2)Debuginfo0_ |PooGq*Data_types0v\3,Svh0Compilation_unit0Dl ]wN*Cmi_format0`M{?w}@.Closure_origin0!Havl5"_*Closure_id0 (?$/Closure_element0ǔf#M2Clambda_primitives0|& %ZIǝz0CamlinternalLazy0zY# #4#-8CamlinternalFormatBasics0|.e1R$|o5Build_path_prefix_map0DGl}%Y5Lhi(Asttypes0eT$BbRM dc/Allocated_const0/vVǟx@@@Caml1999T037' C)Lift_code-ocaml.warning middle_end/flambda/lift_code.mliQQ@2+a-4-9-30-40-41-42 QQ@@QQ@@@@@@QQ@3@@@@@@#intA;@@#intA@@@@@&_none_@@A@A@$charB;@@$charA@@@@@ @A@&stringQ;@@&stringA@@@@@@@@%bytesC;@@%bytesA@@@@@@@@%floatD;@@%floatA@@@@@@@@$boolE;@@%falsec@@%@$trued@@+@@@A@@@@@,@A@$unitF;@@"()e@@6@@@A@@@@@7@A@ #exnG;@@@A@@@@@;@@@#effH;@@O@A@A@@@@@@D@@@,continuationI;@@Q@@P@B,continuationA@nY@@@@@@T@@@%arrayJ;@@R@A%arrayA@@@@@@_@@@ $listK;@@S@A"[]f@@l@"::g@@@T@@y@ @@A@Y@@@@@|@@@&optionL;@@V@A$Noneh@@@$Somei@@@@@A@Y@@@@@@@@)nativeintM;@@)nativeintA@@@@@@@@%int32N;@@%int32A@@@@@@@@%int64O;@@%int64A@@@@@@@@&lazy_tP;@@X@A&lazy_tA@Y@@@@@@@@ 5extension_constructorR;@@5extension_constructorA@@@@@@@@*floatarrayS;@@*floatarrayA@@@@@@@@&iarrayT;@@Y@A&iarrayA@Y@@@@@@@@ *atomic_locU;@@Z@A*atomic_locA@@@@@@@@@ .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@@A5!4!@)Not_foundZ#O@@@A&=)<)@-Out_of_memoryW#W@@@A.E1D1@.Stack_overflow^#_@@@A6M9L9@.Sys_blocked_io_#g@@@A>UATA@)Sys_error[#o@j@@AG^J]J@:Undefined_recursive_modulea#x@@w@s@u@@h@@AXo[n[@:Continuation_already_takenb#@@@A`wcvc@&Stdlib@A@A+&lifterASS@@;@@@A@'Flambda'program@@@ R@@ T'program@@@ S@@ U@@@@SS@@@@@@@@Aб@г'FlambdaSS@SS@@@$3@3;@@@A;@@@ `@{@@@@!@@@@A@@г('FlambdaSS@/S-@.@@6/@@C#0@@2@@21@)lift_letsW]]@г[&lifter ]]@@ @@@ e3@f`@A@@@] @)ocaml.docې  Lift [let] bindings to attempt to increase the length of scopes, as an aid to further optimizations. For example: let c = let b = in b, b in fst c would be transformed to: let b = in let c = b, b in fst c which is then clearly just: &U'\@@@@@@@3A@@@쐠@@@@@@#.lift_lets_exprX=_>_-@б@г!t'FlambdaL_0M_7@ P_8Q_9@@@@@@ f3@??@@@@@@EXC@A @@б(toplevelг$boold_Fe_J@@ @@@ g@@г!t'Flambdau_Nv_U@ y_Vz_W@@@@@@ h) @@'@@ i@@ j._= @@@7@@ k @@ l4?@@@_@@B@@@@:.lifting_helperff@б@г$listgg@г!t'Flambdagg@ gg@@@@@@ m3@f2@A @@@" @@@ o@@б0evaluation_orderз-Left_to_righthh@A@@@-Right_to_lefthh@A@@@@@@Р @@@@@ qA@@@ r*hh@@б+create_bodyб@гP$listi i@г(Variable!t(Variableii @  i  i @@@@@@ aT @@@"@@@ cY@@гZ!t'Flambda i!i@ $i%i@@@@@@ do @@@@@ e@@ ft+ @@б$nameг7Internal_variable_names!t7Internal_variable_namesAj *Bj A@ Ej BFj C@@@@@@ @@г!t'FlambdaWkDIXkDP@ [kDQ\kDR@@@@@@ @@2@@@@gj % @@A@@ @@mi@@@@ @@sh@@@@@ @@@@@{f @@C@@"@@@A@m@K@ @@3pooppppp@@A@ H************************************************************************A@@A@L@ H BMMBM@ H OCaml CC@ H DD3@ H Pierre Chambart, OCamlPro E44E4@ H Mark Shinwell and Leo White, Jane Street Europe FF@ H GG@ H Copyright 2013--2016 OCamlPro SAS HHg@ H Copyright 2014--2016 Jane Street Group LLC IhhIh@ H JJ@ H All rights reserved. This file is distributed under the terms of KKN@ H the GNU Lesser General Public License version 2.1, with the LOOLO@ H special exception on linking described in the file LICENSE. MM@ H NN5@ H************************************************************************O66O6@ * Lift [let] bindings to attempt to increase the length of scopes, as an aid to further optimizations. For example: let c = let b = in b, b in fst c would be transformed to: let b = in let c = b, b in fst c which is then clearly just:  G CR-someday mshinwell: Rename to [bind]? Also see Flambda_utils.bind. aYYaY@ [create_body] always receives the variables corresponding to [evaluate] in the same order. However [evaluation_order] specifies in which order the (possibly complex) expressions bound to those variables are evaluated. be~@@-./boot/ocamlc)-nostdlib"-I&./boot*-use-prims2runtime/primitives"-g0-strict-sequence*-principal(-absname"-w8+a-4-9-40-41-42-44-45-48+-warn-error"+a*-bin-annot/-strict-formats"-I2middle_end/flambda"-I%utils"-I'parsing"-I&typing"-I(bytecomp"-I,file_formats"-I&lambda"-I*middle_end"-I2middle_end/closure"-I2middle_end/flambda"-I=middle_end/flambda/base_types"-I'asmcomp"-I&driver"-I(toplevel"-I%tools"-I'runtime"-I1otherlibs/dynlink"-I-otherlibs/str"-I4otherlibs/systhreads"-I.otherlibs/unix"-I8otherlibs/runtime_events"-c,- 9/builds/workspace/main/flambda/false/label/ocaml-linux-32 >10/.-,+*)('&%$#"! @@0oNWnh7n343344444@2@@/Allocated_const0/vVǟx(Asttypes0eT$BbRM dc5Build_path_prefix_map0DGl}%Y5Lhi8CamlinternalFormatBasics0|.e1R$|o0CamlinternalLazy0zY# #4#-2Clambda_primitives0|& %ZIǝz/Closure_element0ǔf#M*Closure_id0 (?$.Closure_origin0!Havl5"_*Cmi_format0`M{?w}@0Compilation_unit0Dl ]wN*Data_types0v\3,Svh)Debuginfo0_ |PooGq#Env0S B20VJ͟*Format_doc0uy@GmWUࠠ%Ident0>ЃzV)j⠠,Identifiable0]/*N 7Internal_variable_names0TbgѹG+L&Lambda0x_edT-uq0n *Ƴc$C-QU,Linkage_name0tԈK1G)Load_path0,j " nn7ݠ(Location0nBɊOn?7~ؠ)Longident0wP q;ɡ$Misc0Bpg]?[q0Mutable_variable0CQᷧ$'Numbers0 q޷He+Outcometree0BuG^)= 9c )Parameter0zk^f2my19)Parsetree0v o[pY Y$Path0k.tbGmᠠ)Primitive0dU=\I/}*Projection02hS xj562Set_of_closures_id0LbO`ܩ&M6Set_of_closures_origin0!YA _XO %Shape0 M``ll0Static_exception0Jmyrqܒx-8ɞ&Stdlib0t0VoS%{<F:.Stdlib__Buffer0,I[?z.Stdlib__Digest0#z25I*.Stdlib__Domain0'Ϳo\0m.K.Stdlib__Either0HD ?|>.Stdlib__Format00FClW/Stdlib__Hashtbl0(L%bԠ-Stdlib__Int640q=cT?Q1ˠ,Stdlib__Lazy0$1mlࠠ.Stdlib__Lexing0^m|e+Stdlib__Map0*4ɇ2ɠ%Subst0=aqT/!p+&Symbol03E?Y7(#Tag0&b rٍ.Type_immediacy00$ jbv\"k&%Types0"|Vȷ`X )Unit_info0'T Χ@aR2Var_within_closure0``ݗXFR⠠(Variable0?l猵eY(Warnings0Ef{&@0n *Ƴc$C-QUADC@@@@W@@hƒ@@@@@@@@@@@P@@