Caml1999I031E()Lift_code&lifter8@@@A@'Flambda'program@@@'program@@@@@@@@@ middle_end/flambda/lift_code.mliSS@@@@@A@)lift_lets!@@@@]]@@)A@.lift_lets_expr@'!t@@@(toplevel$boolE@@@7!t@@@@@@@@/_0_W@@JB@.lifting_helper@$listIN!t@@@@@@0evaluation_orderР-Right_to_left@-Left_to_right@@@@A@@@+create_body@#(Variable!t@@@@@@x!t@@@@@$name7Internal_variable_names!t@@@!t@@@@@@@@@@@@fkDR@@C@@Y"0e)Lift_code0 kb?n:y(Warnings0zdͦkUe$(Variable0+d2 ޲ՠ2Var_within_closure0GMUu_%T[%Types0lm?ƈ.Type_immediacy0dV^25b)̓ԆSj#Tag0.ΒN1BK@:), &Symbol0SW9粩i%Subst0BYw>*Su}Ck-Stdlib__Uchar0*Ujmyc6]]W.Stdlib__String0I3UK# +Stdlib__Set0.z9FX+Stdlib__Seq05"g1<)b+Stdlib__Map0kZ,ҷ'V.Stdlib__Lexing01'jh,-k4,Stdlib__Lazy0C 4 "$p1tU-Stdlib__Int640X|Gj|}%/Stdlib__Hashtbl04$*uկdD.Stdlib__Format0{hXsHW#ȼ.Stdlib__Either0&]XF.Stdlib__Digest0aI]2t*x4%".Stdlib__Buffer0K ɦb+Z8)#KH"&Stdlib0yӶ~*0Static_exception0 ]8bVwPH%Shape0H[DTċwToe@Q6Set_of_closures_origin0M0-+s-zXĩݠ2Set_of_closures_id0!7䭔(o*Projection00 rgi.1eҠ)Primitive0յ_9|br$Path0L%SsN|#Ɣj)Parsetree0`ⰧkRE)Parameter0‘sEB $^+Outcometree0gCtr 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\@@@@@@@A@@.lift_lets_exprQ__-@б@гm!t'Flambda_0_9@@ @@@ 0@3F1@A@@б(toplevelг$bool_F_J@@ @@@ @@г!t'Flambda_N_W@@ @@@ #@@!@@ &_= @@@-@@ *0 @@@_@@B@@@0.lifting_helper ff@б@г$listgg@г!t'Flambda%g&g@@ @@@ 0@Vn,@A@@@ @@@  @@б0evaluation_orderз-Left_to_right>h?h@A@@@-Right_to_leftGhHh@A@@@@@@Р @@@@@ A@@@ *UhVh@@б+create_bodyб@г堐$listdi ei@г(Variable!t(Variablesiti @@@@@ IN@@@@@@ KS @@г%!t'Flambdaii@@ @@@ Lc@@@@@ Mf@@б$nameг7Internal_variable_names!t7Internal_variable_namesj *j C@@@@@ |@@гN!t'FlambdakDIkDR@@ @@@ @@&@@ j % @@d/@@ i @@w@@ h@@@@@ @@@f@@C@@@@~xA@>)@@ @@0@@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  Ihh Ih@ 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. !M"M@ H 'N(N5@ H************************************************************************-O66.O6@ * 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. 6aYY7aY@ [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. +a-4-9-40-41-42-44-45-48-66-70+-warn-error"+a*-bin-annot,-safe-string/-strict-formats"-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"-cjk 3/home/barsac/ci/builds/workspace/step-by-step-build - @0oNWnh7n0kjjkkkkk@i@@/Allocated_const08UYwBkc6@.(Asttypes0'$O~75Build_path_prefix_map0xөvĠ8CamlinternalFormatBasics0cEXy*Su}Ck&Symbol0SW9粩i#Tag0.ΒN1BK@:), .Type_immediacy0dV^25b)̓ԆSj%Types0lm?ƈ2Var_within_closure0GMUu_%T[(Variable0+d2 ޲ՠ(Warnings0zdͦkUe$@0 kb?n:yAD@@@@@@@@@@@@@=@@@@@@P@