Caml1999O037T @( @(@(D C A(D C  A (D C  A (D C 8@" > (D C D C 8@" 8@" EC> A (@(>($)*W!)TuCUz " C%C 3'G FEDC # D C + 2#GC& F EDC " +2#GC& D C " D C +[ 2#GC& E DC 4 $ E DC D8>! D CF8>! D C "   +  4 #4 # GD" G4# GD"GC&F EDC 8>! D C "  +   4 #  4# GD"GC& D C " @ C%E DC +8 2#2# GD"GC&E DC + h2#2# GD"GC&E DC " +@4#GC& D C " + 2#GC&D C + 2#GC&D C +| 2#GC&?()* G G ! E"D?>?( G G! EDC>?(V5(c()*c]6@ YF VC VdT[TcC W[C Y C8G"ZT"8 yV Vg E8G!8("[ C E D 8)# VC T [ +aihE@@ +3+C!>TZ( yVLF VC VTVcTTT G G EDC>?C! G F E+C>(E?()*+ 8"@ ?8G!A[ AA(C? hF#@(FU E!C&+D!%)*E DCh4"8" G ! WWC AAC% C E D C 8 !   > EcT56@[GhE +CE">(D C +MG!GC" G F E D+C!>(h @l,A()*W/>mVD VT C T58!+d 4#GC&E DCA1$  " AC%)* 4"8" G%)*D C 4# 4#@G%)* 4"8"G% &)*04 4 3 , k/!  +( )*WA 2!8&G F EDC 4# D C 2" $D C 4 " D C 2" @()* 1!8&)* @ "  4  @()*D C ? @ &)* +8# 4!8" @(D C ? @()*! VC   4  +8& c 4"@@(D C @()*D C GGV3  +8&c 4" @@()*C 8G"iF4# EhyVgG8G!8("GGED CE!    8 G68 !68 !A E D?? CA " G Gi F#ED  "h8 8! Dh @@ @@( )* 4!8&C(C8G!6 ?8&58?G68?G68?G68$ D(C(C8G!6 ?8&58?G6 8$C yVE C CD VB D + + +8!!8! +8-!! 8!! 6h? ?83 ?( D +` +J +A8!!8! 8!! 6h? ?83 ?( c(7C? &)*D C ! V.C D8!68!8"8 ! C AC 8D#?( (W&&&&&&&&&&&&&&&&&&&&&C GGV?(c()*D C >()* +8'c(D C @(VD C + 2! D"C&+C&%)*V*D C !VV!V 8" A( !@2&56@[)*,h &G(Ehz(+ + + +8-" V3D V& 8-" VD V i@( i"?( h@(h"?(8"?(c(?(V C + C&+C&)* @%)* &c(cD!hD!@(D C GUG FUF E E8$"+CCG">()* CD'c D%cD!%)*G F E+CG">((chh +F!>( @C')*8! + E"%)*! D +@(%D(!%" C?#@()*VD C + D!% &d +@()* hC'+()* C# C#@()*D Dn +@()* C#%)*D +@()*c()* 'd +@()* C&)* +8# !% G  EDC>%F8! +G #%)* + Fh #%)*VC D C hh>(()*!Vh@(n68#8 ! ? @?@(Wc(d()*+ +8!!8>! D C ! +|8' )* G G F EiC>" F8! ??68 !G ? A! hh>()*G @ F8 !! G EDCAA()*E D C h@ !@ ?@6A()*D C !@ ?@()*D C j @@h @@(C (c]6@ + + + + +z8 +4 + + A +? +'h +@ + + ++ +b +Z  +C   > + + + ++hhh +t G>+b +T @ +1 ,V+   >  + + +     , Ir+p+87! ?9=o QX/:x#Tmc&_none_@@AA"??A@@@@@@@@@@/:l AAðð@#intA;@@#intA@@@@@P@A@$charB;@@$charA@@@@@V@A@&stringQ;@@&stringA@@@@@\@@@%bytesC;@@%bytesA@@@@@b@@@%floatD;@@%floatA@@@@@h@@@$boolE;@@%falsec@@r@$trued@@x@@@A@@@@@y@A@$unitF;@@"()e@@@@@A@@@@@@A@ #exnG;@@@A@@@@@@@@#effH;@@O@A@A@@@@@@@@@,continuationI;@@Q@@P@B,continuationA@nY@@@@@@@@@%arrayJ;@@R@A%arrayA@@@@@@@@@ $listK;@@S@A"[]f@@@"::g@@@T@@@ @@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@@@@@@@@[@@A6=ocaml.warn_on_literal_pattern:@;@0Division_by_zero]#@@@A@ C C@+End_of_file\#$@@@AHKK@'FailureY#,@'@@AQTT@0Invalid_argumentX#5@0@@AZ$]#]@-Match_failureV#>@@=@9@;@@a@@Ak5n4n@)Not_foundZ#O@@@As=v<v@-Out_of_memoryW#W@@@A{E~D~@.Stack_overflow^#_@@@AML@.Sys_blocked_io_#g@@@AUT@)Sys_error[#o@j@@A^]@:Undefined_recursive_modulea#x@@w@s@u@@h@@Aon@:Continuation_already_takenb#@@@Awv@&Stdlib&Lambda4tmc_call_informationhA;@@#loci@@/scoped_location@@@ h-lambda/tmc.mlV9;V9P@@CA(explicitj@@g@@@ k WQSWQb@@DA@@A@@@@@UXcd@@@@BA3subterm_informationB;@@)tmc_calls@@71@@@ \@@@ ^&Z'Z@@GA@@A@@@@@*Yee+[@@@AFA3ambiguous_argumentsC;@@(explicit@@@@@ k:];]@)ocaml.doc When [explicit = true], we have an ambiguity between arguments containing calls that have been explicitly marked [@tailcall]. Otherwise we have an ambiguity between un-annotated calls. J^Ka@@@@@@@IA)arguments@@lD@@@ n@@@ p[b\b@@$JA@@A@@@@@_\`c@@@@(HA%errorD;@@?Ambiguous_constructor_argumentsB@@@ @@qfrf @@:LA@@A@@@@@ue@@@A=KA%ErrorE#@(Location!t@@@&@@@@@Ah""h"G@@SMA&offsetF;@@&Offset&lambda@@@@@pp@c U In the OCaml value model, interior pointers are not allowed. To represent the "placeholder to mutate" in DPS code, we thus use a pair of the block containing the placeholder, and the offset of the placeholder within the block. In the common case, this offset is an arbitrary lambda expression, typically a constant integer or a variable. We define ['a destination] as parametrized over the offset type to represent formal destination parameters (where the offset is an Ident.t), and maybe in the future statically-known offsets (where the offset is an integer). q{ ' )@@@@@@@tSA@@A@@@@@p@@@AwOA+destinationF;&offset@@A#var@@%Ident!t@@@lgilgv@@PA&offset@@G@mwymw@@QA#loc@@)Debuginfo/Scoped_location!t@@@nn@@RA@@A@Y@@@@@kJJo@@@@NA+offset_code@m@@@G@@@f@@@G@@@G@@} + /} + :@@TA.add_dst_params@aU!t@@@@@@G@@@@&@o@@@G@頠@&Lambda*value_kind@@@G@@@J@@@@G@@@ZG@@@@G@@@G@@@G@@G K OH K ]@@VA,add_dst_args @@@@@@@G@@@@j7&lambda@@@3J@9@@@>G@%@@&4 G@,@@@.G@'@@(G@@@ G@@zB  {B  @@CZA-assign_to_dst@ڠ@@@G@\@@@[G@U@@V@/@@@wG@h@@i4@@@sG@j@@kG@W@@XG@T@E % )E % 6@@l^A&ConstrG@!tI;@@#tag@@1@@@(O  O  @@NA$flag@@(Asttypes,mutable_flag@@@(!P  P  @@OA%shape@@+block_shape@@@($Q  Q  @@PA&before@@&lambda@@@('@@@()R  R  @@QA%after@@ &lambda@@@(,@@@(.S  $S  7@@RA#loc@@)/Scoped_location!t@@@(1 T 8 < T 8 ^@@SA@@A@@@@@N  U _ b@Ԑ The type [Constr.t] represents a reified constructor with a single hole, which can be either directly applied to a [lambda] term, or be used to create a fresh [lambda destination] with a placeholder. J  M  @@@@@@@@@MAA@%apply@@@@(O@@(T@D&lambda@@@(P@@(RI&lambda@@@(Q@@(S@@(U@;Y  <Y  @ X [apply constr e] plugs the expression [e] in the hole of the constructor [const]. IW d fJX  @@@@@@@TA@0with_placeholder@@@@(V@@(`@@@@@(W@@@(Y@@([~&lambda@@@(Z@@(\@@(^&lambda@@@(]@@(_@@(a@u]dfv]d@; s [with_placeholder constr body] binds a placeholder for the constructor [constr] within the scope of [body]. [  \"c@@@@@@@LUA@,delay_impure(block_id@@@(b@@(m@@@@(c@@(k@@@@@(d@@(f&lambda@@@(e@@(g@@(i&lambda@@@(h@@(j@@(l@@(n@mm@z  We may want to delay the application of a constructor to a later time. This may move the constructor application below some effectful expressions (for example if we move into a context of the form [foo; bar_with_tmc_inside]), and we want to preserve the evaluation order of the other arguments of the constructor. So we bind them before proceeding, unless they are obviously side-effect free. [delay_impure ~block_id constr body] binds all inpure arguments of the constructor [constr] within the scope of [body], which is passed a pure constructor. [block_id] is a counter that is used as a suffix in the generated variable names, for readability purposes. _lW@@@@@@@VA@@@I  @WA#DpsJ@#dpsM;!a@3M@A@A$tail>@@@3N@@3U#dst;c@@@3O@@@3Q@@3S!N@3R@@3T@@3VY@@@@@:<:s@ A term parameterized over a destination. The [tail] argument is passed by the caller to indicate whether the term will be placed in tail-position -- this allows to generate correct @tailcall annotations. tvF[@@@@@@@@@AA@!tN;!a@3@A;A@G@B@@@]_]h@@@@AA@$make@U9&lambda@@@3@@@3@@3$C&lambda@@@3@@@3@@3@6jl7j@@A@#run@;Z&lambda@@@3@@@3@@3d&lambda@@@3@@@3@@3@WX@@ A@1delay_constructor@!t@@@3@@3@f&lambda@@@3@@@3@@3p&lambda@@@3@@@3@@3@@3@@@KA@&lambda@&lambda@@@3@@3&lambda@@@3@@@3@@3@@@gA@#map@@!a@3O@3@@3!b@3O@3@@3@@3@@@@3@@3@@@3@@3@@3@5@@A@$pair@Π!a@3O@3@@@3@@3@ݠ!b@3O@3@@@3@@3@@@@3@@@3@@3@@3@686^@@A@$unitU@@@3@@@3@ _a_r@@A@@Ԑ . The type ['a Dps.t] (destination-passing-style) represents a version of ['a] that is parametrized over a [lambda destination]. A [lambda Dps.t] is a code fragment in destination-passing-style, a [(lambda * lambda) Dps.t] represents two subterms parametrized over the same destination. (@@@@@@@)) _1G1J@A&ChoicerO@!tP;!a@4@A#dps@@p!tQ@4@@@4?7J7N@7J7]@@A&direct@@@@@@4@@4$Q@4@@4Q7^7bR7^7v@@A)tmc_calls@@sm@@@4@@@4b7w7{c7w7@@+A1benefits_from_dps@@@@@4n77o77@@7A9explicit_tailcall_request@@@@@4z77{77@@CA@@A@_@@@@@7:7<77@F ? An ['a Choice.t] represents code that may be written in destination-passing style if its usage context allows it. More precisely: - If the surrounding context is already in destination-passing style, it has a destination available, we should produce the code in [dps] -- a function parametrized over the destination. - If the surrounding context is in direct style (no destination is available), we should produce the fallback code from [direct]. (Note: [direct] is also a function (on [unit]) to ensure that any effects performed during code production will only happen once we do know that we want to produce the direct-style code.) - [tmc_calls] tracks the function calls in the subterms that are in tail-modulo-cons position and get rewritten into tailcalls in the [dps] version. - [benefits_from_dps] is true when the [dps] calls strictly more TMC functions than the [direct] version. See the {!choice_makeblock} case. - [explicit_tailcall_request] is true when the user used a [@tailcall] annotation on the optimizable callsite. When one of several calls could be optimized, we expect that exactly one of them will be annotated by the user, or fail because the situation is ambiguous. 77=)=.@@@@@@@@@WAA@&lambda @&lambda@@@5Q@5@@5&lambda@@@5@@@5Q@5@@5Q@5@=0=6=0=<@@yA@#map$@@@@6$Q@5@@5@@5Q@5@@5Q@5@@5@@@@6#Q@5@@5Q@5@@@5Q@5@@5Q@5@@5Q@5@====@@A@&direct(@̠!a@6-Q@6/@@@65Q@6+@@6,@@6.Q@6*@?? ??@@A@#dps+@%&lambda@@@6[@@@6ZQ@6Q@@6R$tailB@@@6Q@6`@@6a#dstGF@@6@@6Q@6f@@6gO@@@6Q@6h@@6iQ@6b@@6cQ@6S@@6TQ@6P@@?4?:A?4?=@@ A@$pair0@@/!a@7Q@6@@@6 @ @@@>S@=@@@=S@:@@:ǠS@<@@@T@O?@@O@T@O9@@O:T@O3@@O4T@O-@@O.T@O*@*LL*LL@@ A.find_candidate@v@@@OT@O@@O)lfunction@@@OT@O@@@OT@O@@OT@O@/M^Mb/M^Mp@@ A/declare_binding@@@@QT@O@@O@@%Ident#Map#key@@@PT@OΠ@@@@OT@O@@OT@O@@O%T@O@@OT@O@@OT@O@&3MM'3MM@@ A&choice@3@@@}T@Q@@Q@@@@yT@Q@@Q$tail @@@xL@@xK:3qL@@@@@@T@T@~:T@~;T@}T@xC@@xJT@Q@@QU@Q@@QU@Qx@c=O#O+d=O#O1@@ ,A(traverse@=T@Q@@Q@9T@Q@@Q@@@uT@Q@@QU@Q@@QU@Qy@}~@@ FA2traverse_lfunction@WT@Q@@Q@@@@yT@Q@@Q@@@}T@Q@@QU@Q@@QU@Qz@.2.D@@ dA,traverse_let@uT@Q@@Q@@@@z T@Q@@Q@|T@Q@@Q@T@zT@yT@Q@#@#T@xߠ@^T@x@@x@@@xT@Q@@QU@Q@@QU@Q@@QU@Q@@QU@Q{@uyu@@ A/traverse_letrec@T@Q@@Q@F+rec_binding@@@zT@z@@@{T@Q@@Q@ E0C@O@@A@B.@-@AC*@N@@A)@B@&%BCDE@O@/8 Z BB BBAA6Tmc.Choice.Syntax.and+A@ Y X@@/8 ` BiBx BiBAA6Tmc.Choice.Syntax.let+A@ _ ^@@/8 f @@ AA@A/Tmc.Choice.unitA@ e d@@/8 l AA AA-@A5Tmc.Choice.unit.(fun)A@ k j@@/8 r ?x? @@AA/Tmc.Choice.pairA@ q p@@/8 x ?4?> ?Z?vAA.Tmc.Choice.dpsA@ w v@@/8p ~ ?? ?#?2AA1Tmc.Choice.directA@ } |@@/8`  == >>AA.Tmc.Choice.mapA@  @@/8P  =0== ==AA1Tmc.Choice.lambdaA@  @@/88  sy@A'Tmc.DpsA@  @@/8 AA #dpsK;!a@(@A A$tail I@@@(@@(#dst F n@@@(@@@(@@( L@(@@(@@(Y@@@@@  @@@@ XA!tL;!a@))@A$code@@'delayed 3 z!t@@@)R@@@)T@@)XK M@)U@@@)W@@)Y + ,@@ ZA1delayed_use_count@@ @@@)] 7 8@@ [A@@A@Y@@@@@ = >@   We want to optimize nested constructors, for example: {[ (x () :: y () :: tmc call) ]} which would naively generate (in a DPS context parametrized over a location dst.i): {[ let dstx = x () :: Placeholder in dst.i <- dstx; let dsty = y () :: Placeholder in dstx.1 <- dsty; tmc dsty.1 call ]} when we would rather hope for {[ let vx = x () in let dsty = y () :: Placeholder in dst.i <- vx :: dsty; tmc dsty.1 call ]} The idea is that the unoptimized version first creates a destination site [dstx], which is then used by the following code. If we keep track of the current destination: {[ (* Destination is [dst.i] *) let dstx = x () :: Placeholder in dst.i (* Destination *) <- dstx; (* Destination is [dstx.1] *) let dsty = y () :: Placeholder in dstx.1 (* Destination *) <- dsty; (* Destination is [dsty.1] *) tmc dsty.1 call ]} Instead of binding the whole newly-created destination, we can simply let-bind the non-placeholder arguments (in order to preserve execution order), and keep track of a list of blocks to be created along with the current destination. Instead of seeing a DPS fragment as writing to a destination, we see it as a term with shape [dst.i <- C .] where [C .] is a linear context consisting only of constructor applications. {[ (* Destination is [dst.i <- C .] *) let vx = x () in (* Destination is [dst.i <- C (vx :: .)] *) let vy = y () in (* Destination is [dst.i <- C (vx :: vy :: .)] *) (* Making a call: reify the destination *) let dsty = vy :: Placeholder in dst.i <- vx :: dsty; tmc dsty.1 call ]} The [delayed] argument represents the context [C] as a list of reified constructors, to allow both to build the final holey block ([vy :: Placeholder]) at the recursive call site, and the delayed constructor applications ([vx :: dsty]). In practice, it is not desirable to perform this simplification when there are multiple TMC calls (e.g. in different branches of an [if] block), because it would cause duplication of the nested constructor applications. The [delayed_use_count] field keeps track of this information, it counts the number of syntactic use sites of the delayed constructors, if any, in the generated code.  K L)6):@@@@@@@@@ YA,write_to_dst@ Ѡ e@@@)@@@)M@)@@)@  @@@*'Q@)@@@)M@)@@)@ @@@)M@)@@) @@@)M@)@@)M@)@@)M@)@@)M@)@ )<)B )<)N@@ N\A&lambda@ &lambda@@@*GM@*A@@*B &lambda@@@*K@@@*MM@*C@@*DM@*@@ )) ))@@ nbA$unit @@@+,@@@++@ &** &**@@ ~fA#map@@!a@,M@+@@+!b@+M@+@@+M@+@@+@٠M@+@@@+M@+@@+M@+@@@+M@+@@+M@+@@+M@+@ -+c+i -+c+l@@ gA$pair@!a@.?M@,@@@,M@,@@,@ !b@.EM@,@@@-M@,@@,@$M@-@M@-@@-@@@- M@,@@,M@,@@,M@,@ '3,, (3,,@@ mA#run@3!a@.M@.W@@@.]M@.S@@.Tj M@.a@@@.cM@.U@@.VM@.R@ I:--  J:-- @@sA+reify_delay@ o&lambda@@@.@@@.M@.@@.a {&lambda@@@.@@@.M@.@@.M@.@ n>-\-b o>-\-m@@7wA.ensures_affine@z &lambda@@@0@@@0M@0@@0 &lambda@@@0@@@0M@0@@0M@0@ K.. K..@@\A$make@ɠL@@@1M@1@@@1M@1@@1 M@1@@@1M@1@@1M@1@ T// T//@@}A1delay_constructor@T@@@2M@1@@1@QP@@@1@@@1M@1@@1Ԡ  .@@@2O@1@@@2M@1@@1M@1@@1M@1@ W/0 W/0@@A@@AB@@A7P@@N@@ABiH@@^O@@A=J@@BCD@ K@@AM@@L@@ABUI@@G@@ACE@P@/8ǰ W/0 ^1A1FAA9Tmc.Dps.delay_constructorA@@@/7Ͱ T// U//AA,Tmc.Dps.makeA@@@/7Ӱ K.. O/2/KAA6Tmc.Dps.ensures_affineA@@@/7ٰ >-\-n I..AA3Tmc.Dps.reify_delayA@@@/7߰ :--  <-9-ZAA+Tmc.Dps.runA@@@/7 3,, !8,-AA,Tmc.Dps.pairA@@@/7 &-+c+m '1,,AA+Tmc.Dps.mapA@@@/7 ,&*+ -++^+a@A,Tmc.Dps.unitA@@@/7x 2'++ 3)+<+A@A2Tmc.Dps.unit.(fun)A@@@/7d 8)) 9 *S*VAA.Tmc.Dps.lambdaA@@@/7T >)<)O ?)x)AA4Tmc.Dps.write_to_dstA@@@/78  Dn ~@A*Tmc.ConstrA@@@/7$AA!tH;@@#tag@@@@@а Zp [p@@#dA$flag)@@ ,mutable_flag@@@ hq iq@@1eA%shape*@@ +block_shape@@@  ur vr.@@>fA&before+@@ &lambda@@@ @@@ s/3 s/G@@PgA%after,@@ &lambda@@@@@@ tHL tH_@@bhA#loc-@@ /Scoped_location!t@@@ u`d u`@@riA@@A@@@@@ o v@@@@vcA%apply.@q@@@.I@6@@7@ \@@@ I@<@@= a@@@I@>@@?I@8@@9I@5@ x x@@jA/tmc_placeholder| m@@@9I@8@ }MS }Mb@@nA0with_placeholder}@/@@@$I@;@@<@@ K s@@@T@@@S@@R&lambda@@@Q@@PI@A@@B @@@I@C@@DI@=@@>I@:@ @@oA,delay_impure(block_id@@@e@@d@@@@c@@b@@@@@a@@`E&lambda@@@_@@^@@]J&lambda@@@\@@[@@Z@@Y@<=@@vA@WVBT@F@@AV@8I@@ABL@wG@@mH@@ABCD@I@/7OP@A=Tmc.Constr.delay_impure.(fun)A@@@/7 @7Tmc.Constr.delay_impureA )bind_list(block_id#intA@@@$J@@@*arg_offset#intA@@@%?J@@@@ڠ @@@%J@%x@@@%zJ@@@@@O@@@@%J@%@@% 6@@@%J@%A@%J@@@J@@@J@@@J@@@J@@@J@@2:2C@@qwAllk@[I@@AB@ihBCD@I@/7z2DAA !Tmc.Constr.delay_impure.bind_listA@yx@@/6AA;Tmc.Constr.with_placeholderA@~@@/6x{)KAA0Tmc.Constr.applyA@@@/6E % 7G  AA1Tmc.assign_to_dstA@@@/6B  C  #AA0Tmc.add_dst_argsA@@@/6 K ^@  AA2Tmc.add_dst_paramsA@@@/6} + ;} + IAA/Tmc.offset_codeA@@@/6UAA@@@/6d} + H@@A } + + @!tS@@@@} + C} + D@@UA@%paramA@@B@@AB@@B@/6X#A @@ @AA@/6Pǰ@  /@A.A@@@/6H˰@  @A2A@@@/68ϰ @  7@A6A@@@/60Ӱ@  @A:A@@@/6 @C /4(ذ{X@@WACA/4$ް=C=w@A^Bݠ1T@BMB /4"=I#=g@AgA@@@/3' $l@@k@ B@/3-0.@A 'Tmc.Constr.delay_impure.bind_list.(fun)A@@@/33 ~@@}A搰?26@@C2ED2M@@ xA@I2OJ2Y@@yA'lambdas@P2ZQ2a@@zA!k@W2bX2c@@ {A.can_be_delayed@@@@O@@@@@@O@@@O@@ofppf~@@8|A(bindings Р @@@@%w@@@%v@@@%uO@@@@O@@@@U}A$args@@@O@@@@b~A$bodyJ@%@  @@jBAe@_F@@AeC@@G@@=H@@ABCpD@@I@@A[E@@BcA@@lB@@ACD@@IA/3@A A@@ABD H /3@@A H@/3t@@a@F@@%P@!A@2@A-C$E@/3d@ >@r@R@@@@@P@%}Q@%s9AE@/3`@@y@@@ER@ @@@!@@  \@ )@_@@@%NR@%K@"R@%L@@%MR@L@@@MR@H@'R@I@@JR@@@@@@pAOF@/3P+M@AA@@@/38/z@@yAWE@/343QY4@A 0Tmc.Constr.delay_impure.bind_list.can_be_delayedA@@@/3(9fl@@@a@@A@BCD@/3CbDb@@A됰@ @%paramA@@A@@AB/3S @@A A/2%A"@A /2 [\@A.A@@@/2%`a@A3A@#"@@/2*e@A7A@'&@@/2x.ij@AA9!i@@@.@xy@@AA#lam@@@H@A!v@@@\V@P@6H6I@@TAAO@"B@@AA@@C@@AB@SC@@A[B@@DD@@AB@CA/2li6L_@AwA9h@@@ABB /2\s_q @&stringQ@@@^W@%CW@pCM|B@/240@@ARB@/2,@AA@@@/2@AY B@/2 @ @@@GV@CAe,B@/2@@@i0B@/1bvbz@@A'binding @ ;@@@%N@%@pN@%@@%N@%@@@%N@%@5<@@CA$body`N@%@=A@@DAƠ@(B@@A@@AB@@B@/1Ӱ{{@AA@@@/1@A6!v)@{{@@EA#lam)@{ {@@FA@ B[C@@A @ @AD@@E@@ABC"E@/1/EO!@@@R+B@/156+@@@@@@&@@@&@@&@@@&A@&@@&@@&C(block_id@@@&@WX@@ GA&constr@@@&4@bc@@+HA$body@"@@@&M@@&L?@@@&K@@&J@uv@@>IA9@-C@@AA@@%B@@AB@,B@@A@D@/1tK/7@A6A@HG@@/1XOU:@@9@>KC@/1DTtxt@@@2@@@'5@@@'4@@'36@@@'0A@'2@@'1@@'/TC\'vbeforeC@@@&@@@&@3:@@|JA*arg_offsetH@@@&O@&@>F>P@@KA@B@@A A@@B@vB@@AC@@mE@@AzD@@BC@C@/1$t@AA@@@/1M@@A6B@/0>S>l@s@@@&@&Q@&AC@%@A$A@/0>B@@@IA@/0@AA@@@/0@@@U&vaftere@@@'^@@@']@tt@@LAʠ@A@@A@C@@AB@@mD@@AB@A@/0)_)c)_)t@@@@@)@@)@@@)@@)A Tސ/)<)>@#dst@4)<)R@@]A'delayed@:)<)S;)<)Z@@^A!t@A)<)[B)<)\@@ _A@B@@AC@@A@@AB@B@@ԐC@@AB@D@/0|U)x)|@Q@)C0C@/0l!\)x)])x)@A:Tmc.Dps.write_to_dst.(fun)A@ @@/0T'G#@@"@9#C@/00,g)x)h)x)@@ @B!t@o)x)p)x)@@8`A&constr @v)x)w)x)@@?aA:@ A@@AB@@B@ېB@@A@B@/0L))O@ANA@IH@@/0P))*1*6@A4Tmc.Dps.lambda.(fun)A@ON@@//V @V@  ))\@!v @@@*H@))))@@ecA`@ A@@A@ WB@@A@A@//p****0@@ @'delayed  @@@*n@@@*m@))))@@dA#dst ̠ @@@*@@@*@)* )* @@eA@ C@@AA@@B@@AB@BC@@A B@@B@C@//(+3+9(+3+;@@@ @ABC@@A@@C@//-+c+@AA@@@//.++/++@A1Tmc.Dps.map.(fun)A@@@// @@ &!f@ <@@+ 6@@+@-+c+n-+c+o@@hA!d / .@@@+@-+c+}-+c+~@@iAӠ@A@@AB@@B@@B@//|/++/++@ [M@,]T@,,C-'delayed  @@@,@@@,@2.++3.++@@jA$tail N@@@,+@<.++=.++@@kA#dst N M@@@,:@@@,9@J.++K.++@@lA@*C@@AA@@B@@AB@QC@@A^B@@B@C@//d#^/++A@@h@; C@//P)d3,,GD@ACA@&%@@//H-h4,I,Ti5,p,@A2Tmc.Dps.pair.(fun)A@,+@@// 3 @K@  r3,,R@"da } |@@@,@{3,, |3,,"@@DnA"db u t@@@-@3,,,3,,.@@OoAJ@B@@A@@AB@@B@// Y5,p,v5,p,@A,A@WV@@//^5,p,w5,p,@ S@-3C4'delayed  @@@--@@@-,@4,I,Z4,I,a@@upA$tail @@@-@@4,I,c4,I,g@@qA#dst Ƞ @@@-Q@@@-P@4,I,i4,I,l@@rA@*C@@AA@@B@@AB@^B@@VC@@AB@D@/.5,p,5,p,@ S@-rC?C@/.L@u@AC@/.;-#-'@A1Tmc.Dps.run.(fun)A@@@/.@@  :--@!d  @@@.^@:--:--@@tA@A@@A@@A@/.ư<-9-=@@@$tail @@@.q@ ;-#-, ;-#-0@@uA#dst  @@@.@@@.@;-#-2;-#-5@@vAݠ@A@@AB@@B@7B@@A@B@/.*>-\- @A A@@@/.x.?--/G..@A9Tmc.Dps.reify_delay.(fun)A@@@/.\ @ @ b 萰7>-\-^ #@#dps  @@@.@@@.@C>-\-oD>-\-r@@ xA@A@@A@B@@ C@@AB@A@/.DUA--VA--@@'A''delayed E D@@@/@@@/@e?--f?--@@.yA$tail @@@/0@o?--p?--@@8zA#dst  @@@/A@@@/@@}?--~?--@@F{AA@*C@@AA@@B@@AB@B@@AUD@@ BC@@AB@C@/.<YC.. C..#@@@>=@@@/@@@/@@/<@@@/@@/@@/;@@@/@@/~AZ!x @@@/[@B--B--@@|A"xs  @@@/]@@@/\@B--B--@@}AIG@G@AE@@D@@ABCIF@/.,C..'F..@AA@@@/. D@@A)E@/-@--@@@\C@/-D.6.@@AA@@@/-E.L.XE.L.~@@@@/V@0C@'new_dst@@@/@@@/@C..+C..2@@~A@A@@A@̐C@@E@@ABD@@ B@@TF@@ABC@B@/-ذE.L.l.@AA@@@/-ܰF..F..@@@@/V@0JB2#A@/-B@@4%A@/-'O/2/D @  @@@12O@1cO@1?@@@1\ $A e Ő9K.. +@!d  @@@0@@@0@EK..FK..@@A @A@@A@ C@@A 'B@@B@A@/-|UO/2/8 G@@ FA!A@/-pYM/!/'ZM/!/(@@ KA&A@/-\#^L./ P@@ O@* A@/-L)dU// \@@ [@  АiT// a@#dps ̠ @@@1@rT//sT//@@;A6@A@@A@ /B@@A@A@/-DFX0"0B @A ~A@CB@@/-<JY0D0Q\01@A?Tmc.Dps.delay_constructor.(fun)A@IH@@/- P @ A  ֐W/0 @&constr @ W/0@@]A!d  @W/0W/0@@dA!d   @@@1@@@1P@1@X0"0*X0"0+@@tAo@ B@@CA@@AB@B@@ JC@@AB@CA/-X0"0.X0"0>@A A9@@@ABB /-X0"0& @@ @AB@/,[00[00@@@ n@@@2@@26@@@2@@2@@2 @@@2@@2~_Ba'delayed  ֠ @@@2@@@2@Y0D0WY0D0^@@A$tail  @@@2%@Y0D0`Y0D0d@@A#dst   @@@24@@@23@Y0D0fY0D0i@@A(block_idv@@@2FS@29@Z0m0yZ0m0@@Aޠ@D@@A8C@@B!A@@-B@@AC@B@@AC@@D@@AB@E@/,3[004\01@AA@@@/,g@@AQDA/,=Z0m0>Z0m0@AAX@!@A BC /, GZ0m0u@@@` C@/,M\00@AA@@@/,xQ\00@@@l&constr @@@2@Z[00[[00@@#A@ A@@A@ƐB@@A{C@@gE@@AsD@@BC@A@/,p7r=0=W @A A@43@@/,d;v=Y=cw=Y=o@F@@@5)@@@5(S@57 A9=0=2 @!v"@@@5@=0=>=0=?@@XAS@ A@@A@ϐB@@A@E@/,Ta=q=~=q=@A7Tmc.Choice.lambda.(fun)A@`_@@/,8g0@ @bA@/,,k=q==q=@@ @%i@ #A@@A@'B@@A@A@/,$z== @A A@wv@@/,~=>=>@@@@5T@5Bz!f% @ ==@@A!s&@====@@A@B@@ A@@AB@B@@A@F@/+>>&>>A@A4Tmc.Choice.map.(fun)A@@@/+/@"@ B@/+>>3>>@@+Q@6Q@6 Q@5A.@ 'A@@A@3B@@0C@@AB@A@/+İ>>1@@ @=A@/+ʰ?#?'L@@K@! ??Q@!c*@@@66@????@@Aנ@A@@A@@A@/+p?Z?^l@@k@!&?4?6s@!c-@@@6]@@@6\@2?4??3?4?@@@A.@8?4?N9?4?R@@A/@>?4?T??4?W@@A@C@@A A@@B@@AB@B@@A@C@/+\Q?x?@AA@@@/+PU??V??@%@렠@@@6@@@6S@6B "j?x?z@"c12@@@6@s?x?t?x?@@<A"c23@@@6@~?x??x?@@GAB@C@@AB@@ 5A@@AB@ÐB@@A@G@/+0U???@@A5Tmc.Choice.pair.(fun)A@TS@@/+[@@@@8@CB@@@7f@@@7eS@7{B>d"E@/*kU@A@f$C@/*mA@@h@"@A A@/*s???@@AA@qp@@/*x????@^Q@7/%ASy@ 4A@@A@TB@@LC@@AB@B@/*???@@dQ@7B8AfA@/* @;@hA@/*xAA*AA,@@+@@ 7A@@A@@A@/*dBiB~C@@B@FBiBmI@!a:D@NBiBy@@A!f;=@BiBzBiB{@@A@B@@ A@@AB@EB@@A@B@/*LŰBBk@AjA@@@/*<ɰBBo@@n@C BBu@"a1>A@zBB@@A"a2?:@BBBB@@A٠@B@@ A@@AB@ېB@@A@B@/*&CC 'CC$@AA@@@/*+CC@@A60BB@!cC210@@@8@@@8@=BB>BB@@A@A@@A@B@@ȐC@@AB@A@/)MC%CC@AA@@@/)QC%C5@@A'!cDPO@@@8@[C%C0\C%C1@@$A@B @AB@/)*eBB@@@:'&A@/)0AA@+*@@/)2 @@!vFfR@9@rC%C:sC%C;@@;A6@ A@@A@@A@/)AV@@O<@%paramEA@@A@@A@/)I II II@AA@GF@@/)N II@*t@@@@B=A@sr@@/) zKK@@BAW9several_explicit_subtermsqH@@@=@KKKK@@A@J@@AE@@ABCDJ@/(J}JZ@@YAmRHA/(J1JQJ1Jy@A`BtWDG /(J1J9i@@hA{G@/(IcIgm@@lANEA/(I'I-I'I[@AsBU@@@ABCD /(I'I9I'IS@A +Tmc.Choice.find_nonambiguous_tmc_call.(fun)A@@@/(I I@@AdD@/(F|FHIAA 2Tmc.Choice.find_nonambiguous_tmc_call.nonambiguousA@@@/(ŰF|F@@Am @@ABC@/(̰FEFYFEFxAA 1Tmc.Choice.find_nonambiguous_tmc_call.is_explicitA@@@/(tҰ FEFI@@AyϠ@@@ABB@/(pٰFF,FFAAA 3Tmc.Choice.find_nonambiguous_tmc_call.has_tmc_callsA@@@/(d߰FF@@@ܠ@@AA@/(L"FF0@@ @ @!c^@+FF-@@A@ A@@A@@A@/(86FEF]/@@.@{.3@!sax@8?FEFZ@@A@ A@@A@@A@/($JHHP@@OAxQV@tdr@TF|FUF|F@@A'choicesem@[F|F\F|F@@$A%splitf@m8X@<@@@<X@; @@; @{@@@<(@@@<'X@;@@;@@@;@@;Y@;@@;Y@; @GtGGtG@@MAH@4A@@A;B@@0C@@AB@B@@AC@@ڐD@@AB@C@/(`GtGz@@@P]@BB@/'hGGGG@2@@@;O 8Tmc.Choice.find_nonambiguous_tmc_call.nonambiguous.splitBc*rev_beforegJ@GtGGtG@@{Av@ njA@@A B@@B@ِB@@A C@@D@@AvE@@l@@@ABC@B@/'+@"A BB/'HHHH@A)A@@@/'HHHH@/A0!ch@@@;E@GH GH @@A$resti@@@;G@@@;F@GHGH@@A@D@@AD@BC@@D@ACCF@/'ưHHHH@@XA( D@/'˰HfHrHfH@A]A@@@/'а HfH HfH@(S@;\@;@@@;\@;lB=!D@/'@oA?#D@/'xHHRHH_@q@@@;@;^@;}AN2D@/'P,HH#-HH2@@@@;m@;]@;zA]AD@/'H;HH :@@AaEDo/'(>AA@Bs/'  DI'ICEI'IR@@T@!cl<@KI'I>LI'I?@@A@ A@@A@B@@A@A@/&ZCC[CC@A/Tmc.Choice.listA@@@/&%`CC@@A !cHD5R@9s@@@9@@@9@qCKC[rCKC\@@:A5@A@@A@B@@AX@@@C@@AB@A@/&ICCCC@([@@@:&U@:'U@: U@9@@@:V@: ;A9!cI43@@@9@CCCC@@kA"csJBA@@@9@@@9@CCCC@@zAu@CC@AB@@$leftlE@@ABGE@/&CCCC@AgA@@@/&CC@@kA/@@@ABSC@/&CxC| @@r@mZA@/&|AvA@@@/&p@xA>!vL@:@CCCC@@A"vsMQ@:@CCCC@@A@lNA@@AC@@B@@AB@@CA/&\3A@@ @AA/&P@@@}KA@@A@@A@/&<Ű+LM-MKMN@A/Tmc.llets.(fun)A@@@/& ˰+LM@@@*LL@"lk@*LL@@A"vk~@*LL*LL@@A(bindingsz@ *LL!*LL@@A$body[@'*LL(*LL@@A@B@@ A@@AB"D@@C@@AC@@D@/& 9,M)M-:,M)MJ@A9A@@@/% @;A9#var@D+LME+LM@@ A#def@K+LML+LM@@ A$bodyX@OG@T+LM!U+LM%@@ A @ A@@AC@@jB@@!D@@ABC@UB@@RC@@AB@D@/% 0kAh@c +@@A@B B@/% 7r1MMC@@BA $v/M^M^G@ 8@ /A@@A@@AB/% F0M|M0M|M@ARA@ D C@@/% K@TA$lfun@@@O@0M|M0M|M@@ VA Q@B@@A@BB@/% \0M|M0M|M@@hA Z B/%  bnAk@) ]%A /% e5N N5N N@@wA W3MM@#ctx@3MM@@ uA#var@3MM3MM@@ |A#def@3MM3MM@@ A ~@uE@@AB@@BC@@A@@D@@ABC@B@@A@E@/%  ;NN@AA@  @@/% ;NN;NO@!th@@@PvX@P@@@PCG$lfun@@@O@6NN&6NN*@@ A%arityX@@@P Y@P@7N.N47N.N9@@ A&dps_idI@@@P$Y@P@8NWN] 8NWNc@@ A+direct_kind-function_kind@@@PUY@PR@9NN9NN@@ A$cand@@@P[Y@PW@#:NN$:NN@@ A @i@A8G@@J@@Ak@BCj@'I@@A4H@@LF@@ABomCDkJ@/$ g@ AS J@/$ ::NN;:NN@AA@  @@/$!?:NN@@A[!@@ABDzI@/$! G9NN@@Ab! @@A@BCDHA/$!R8NWNfS8NWN@A)An!@%@ABCG /$!"]8NWNy @ @@@P&@PQ[@P:;B!(G@/$!/j8NWNzk8NWN@&stringQ@@@P>@PN\@PJLA!9#H@/$!@{8NWNYR@@QA!='GA/$!F7N.N<7N.NS@AXA!E/CF /$l!O7N.N0a@@`A!LF@/$T!S4MM4MN@@@@O@@@OmA!Z@@ACD@/$L!d4MMv@@uA!aD@/$8!hzAw@!c@@@ABB@/$!o=?@@A!i@!t@ @@!}A#ctx@@@V@@  @@!A!@B@@AA@@B@eB@@A@B@/$!  9@AA@!!@@/$! @@@)!@@AA@/#!##@@A!!@ TA@@#tag$B@@AB@rB@@A@BC/#!  @AA@!!@@/#! @(Location%error@@  &report@ @@@@X@E!ˠ#loc@@@@  @@!A)argumentsʠ@@@@@@@ #  $@@!A)print_msg@*Format_doc)formatter@@@HY@;@@<$unitF@@@Y@=@@>Y@:@ D( E1@@" A&submgs,X#msg@@@ @@@Y@@ Wz Xz@@" A"@{#E~"D!C@@AOG@@[F@@AB@FH@@A&I@@@ABCI@/#"6 q  r @ATA@"4"3@@/#"; v  w  @AYA@"9"8@@/#"@@[Ap"; I@/#"B }R^ ~@4aAw#sub-@ @@@Z@@@C@@E[@8#loc*Format_doc!t@@@@@@@SZ@@@Z@@  @@"uA"pU@H@A2I@@@ABCI@/#"} ;@@@6@@@[@@@@@@{|@@@[@@@@@@AP""J@/#x"W @\P@@@ @@@ Z@[@,Aa"3I@/#h"h h@DHZ@Z@wZ@!@@@/@@@.[@\@uܐA{"MI@/#d"İ hw@@ @@@f]@I@@@[@@Zà  @@@e@@@d]@F@@@Y@@XA"nJ@/#T"! h<@AA@""@@/#D"@A"tI@/#@"!&!'NAA-Tmc.(fun).subA@""@@/#4"!,z=@@A""O@@AN@BCKH@/#0"!42!59lAA3Tmc.(fun).print_msgA@""@@/#$"!:$K@@A/"][CWGS/##!A!}!B!}@A$A@##@@/## !F!}@R@@TM@@@@@eX@5E##loc @@@@!` ,!a /@@#)A)arguments!!@@@*@@@)@!n `!o `@@#7A)print_msg2@K@@@hY@G@@HF@@@Y@I@@JY@F@! ! @@#PA&submgs5CB@@@@@@Y@@!!@@#`A#[@@@A^@ @@@3@@2[A$<K@/"T$C"~9@A`A@$@$?@@/"D$G@bA$BJ@/"@$I""\AA-Tmc.(fun).subA@$H$G@@/"4$O"I@@lA5$L@@A@BCI@/"0$W" "AA3Tmc.(fun).print_msgA@$V$U@@/"$$]" W@@zAB$ZCH/!$dA@$[$_@@AA/!$i"@@@P5@#ppf42@" @@$uA$p@ A@@A@@A@/!x$}"\x"\{@A4A@${$z@@/!l$"\j9@@8Ak"?@$info8@@@@""@@$A#loc9(Location!t@@ (Warnings#loc@ @@@@\@@"$"'@@$A$@*A@@"B@@AB@@BA/!d$"*"X@ArA:$@@A A /!D$İ" {@@z@A$A@/!4$ʰ##@@@N!t;@# # @@$A$Р@ A@@A@@A@/!$$ݰ#E#R@@@a$info:@@@@#"&##*@@$A$@ A@@A@@A@/ $#.8D@@@% @#ppf@#75@@$A$@ A@@A@@A@/ %#B+#C.@AA@%%@@/ % #G!@@ A@Ȑ#M'@$info/@@@@#U#V@@%A#loc0@@@@@@@+\@@#h#i@@%1A%,@ A@@B@@AB@@BA/ %;#v#w @APA0%:@@A A / d%D#Y@@X@7%AA@/ T%J#h#h@@h@!t1@#h#h@@%UA%P@ A@@A@@A@/ @%]##@@)@@v(@@u1Tmc.traverse_listA%^#ctx@##@@%pA%terms@##@@%wA%r@B@@ A@@AB@]@@A"[@@ \@@AB#MZ@@"~_@@A"Ɛ^@@BC@@@ېb@@Aa@@R`@@ABU@@uC@@ACD?I@@ϑO@@AL@@R@@AiF@@VX@@ABCEXC@/ ,%##@@S@Q%AB@/ %##@A4Tmc.make_dps_variantA@%%@@/ %°##@AA@%%@@/ %ǰ$ AA A@%%@@/%˰$@AA@%%@@/%@A%͠#vars@$Qf$Qi@@%A)inner_ctxt@$Qj$Qs@@%A)outer_ctxu@$$Qt$%Q}@@%A$lfunv$>@@@}[@$/Q$0Q@@%A'specialw@@@}Y@}_@$;$<@@&A*fun_choicexY@}@$C$D@@& A&directy_@@@~uY@~@$O$P@@&A#dpsk@@@Y@~@$[`f$\`i@@&$A'dps_var@@@Y@@$g|$h|@@&0A&+@*G@@AH@@I@@AB6F@@]C@@QA@@ABCYB@@JE@@AkD@@BDUI@/&F$|~@@Ax&C@@ABCD H@/&O$?C$cv@6A)dst_param# @@@~Z@~@@@~Z@~@$lt$l}@@&hA#dst##@@@~Z@~@@@~Z@~@$$@@&zA&u@I@I@@AB+H@@J@AHGBCEDD@I@/&$?`6@@@@@[@VАF<&I@/&$$@Р@'!t@@@b@#@@@c@@a@@@`[@\@B[&5P@/&$!$L@#@@@\@\@Ci&CN@/8&p@Ak&EI@/,&$$;@AA@&&@@/&ư%%9@A A@&&@@/&˰%"@AA@&&@@/&ϰ% @@A|&̠@@AVTBCDH@/&ذ%l%@AA@&&@@/&ݰ%%@$_@@@~[@~'A&@@A@BCDI@/&%)%*@3A"& H@/&%0`b9@@8A&&G@/&%4'+%5'\@>F2$kindz1@@@~@%E%F@@'A¶ms{G@!t@@@~@$'@@@~@@~@@@~@%`%a@@')A&return|$2@@@~!@%j%k@@'3A$attr}$<2function_attribute@@@~'@%v%w@@'?A#loc~$H/scoped_location@@@~*@%%@@'KA$body-Z@~.@%%@@'TA'O@'H@@AL@@#@AB!@[K@@A"@"G@@ABC#@WJ@@A=I@@B%@%@ACD$L@/d'ip@Ak'dLA/`'m% %#@AAr'l@@A=@B;C8D3K /P'y%@@A|'v K@/'}%@@A'z@J@AHGBEDC@F@/'%6:%@'@@@~Y@~Z@}ҐB'F@/'%QW%Q@!t@@@}@~ [@}A'#G@/'@A'%F@/'%  @@A')FA/'%%@AC'@xwButCpE /'%@@A'EA/'%%@AB'@@ACD /'ư& @@ @'D@/l'̰&#&O@A;Tmc.traverse_letrec_bindingA@''@@/d'Ұ& %&M@AA@''@@/X'װ&1&K@ B'Ԡ#ctxk@&Zv&Zy@@'A"idln!t@@@|@&*Z|&+Z~@@'A#defmD@@@|@&4Z&5Z@@'A'@"B@@AC@@D@@ALrA@@BCRE@/@( >@;A.( D@/,( &G&H @A !Tmc.traverse_letrec_binding.(fun)A@( ( @@/(&M&N@@FA:)functionsnW@|@&U&V@@(A(!@ E@@A@@ABCEA/((&c&d@A\DP('/D/(/&j@@bAU(,4D@/(3&ng@@fAY(08D@/(7UjAAi@(-(3@:@6@AB4B@/(?&z&{ @A3A@(=(<@@/(D@5A1"ido@&&@@(MA#defp@&&@@(TA(O@ B@@AC@@qA@@AB@@C@/(_SAP@J(Z@@AA@/(e&&@A8Tmc.traverse_let_bindingA@(d(c@@/(k&&@AA@(i(h@@/x(p&@6 B(m)outer_ctxb@&<U&<^@@(A)inner_ctxc@&<_&<h@@(A#vard@&<i&<l@@(A#defe@&<m&<p@@(A(@E@@AA@@C@@AB&D@@B@@AC$OF@/`(>@;A/(E@/L(&&&N@A>Tmc.traverse_let_binding.(fun)A@((@@/<(&&X@@FA<$lfunf@@@{@&&@@(A)functionsg{T@{@&&@@(A(.+@ G@@AB+@F@@A-,BC*GA/8(ΰ' ' @AiD#(͠>;@B9C5F /(ذ'-@@rA+(F@/(ܰ's{'s@41@@@{m@@@{lAt(@R@AP@BONCLD@/(')suC@@@|(D@/('/:'0M@AOA@((@@/('4?@ASA@((@@/( @UAQ#varhZ@{@'?,'@/@@)A$lfuniZ@{@'H1'I5@@)A) @ B@@A\jA@@C@@AB@@C@/)wAt@n)@ @AA@/)"']+-'^+:@A3Tmc.traverse_letrecA@)!) @@/)(@A)!#ctxZ@'j6J'k6M@@)3A(bindings[@'q6N'r6V@@):A#ctx\EW@zh@'yY_'zYb@@)BA(bindingsaڠ6@@@{W@z@''@@)PA)K@D#A@@AC-B@@BLDA/)^''%@AO:OD*>O:OJ@@+A,choice_apply@!T@R4@@R5$tail-W@R8@@R9@(,lambda_apply@@@mwW@R<@@R=/W@R>@@R?X@R:@@R;X@R6@@R7X@R"@*$]]*%]]@@+A0choice_makeblock@!W@R@@@RA$tailRW@RD@@RE@@(@@@pW@n@((@@@pW@n@*l(@@@pW@n @@n W@RH@@RI@ W@RL@@RM@@@@oDW@RP@@RQ{W@RR@@RSX@RN@@ROX@RJ@@RKX@RF@@RGX@RB@@RCX@R#@*phh*qhh@@,9A+choice_prim@"JT@RT@@RU$tailW@RX@@RY@)Z)primitive@@@uW@R\@@R]@ W@R`@@Ra@&@@@uW@Rd@@ReW@Rf@@RgX@Rb@@RcX@R^@@R_X@RZ@@R[X@RV@@RWX@R$@*9ww*9ww@@,p A+choice_list@"T@Rh@@Ri$tailW@Rl@@Rm@!G"T@Xu[@u@@@uW@Rp@@Rq"v#,W@TW@TW@XQW@X'@@@X;W@W@@@WW@Rr@@RsX@Rn@@RoX@Rj@@RkX@R%@**@@, A+choice_pair@"T@Rt@@Ru$tailW@Rx@@Ry@@;W@T@?W@T@@TW@R|@@R}"@W@T@W@T@@T]@Tc@@@TW@R~@@RX@Rz@@R{X@Rv@@RwX@R&@++@@, A-choice_option@"T@R@@R$tailHW@R@@R@&optionLv[@w@@@wW@R@@R"&optionLT@@@XRW@W@@@XW@R@@RX@R@@RX@R@@RX@R'@+QPV+RPc@@- A-@C@@AXD@@G@@AB6E@@DI@@A~H@@F@@ABB@@A@@ACD@I@/8-0+k>O:O<@@@--@  BB@/-8+sr+tr@%x@@@v[@x \@w8Tmc.choice.choice_optionBà#ctx,`@+Pd+Pg@@-PA_-]@+Pi+Pm@@-VA!t.]@+Pn+Po@@-]A-X@C@@A A@@B@@AB@'W@@A*U@@(V@@AB+4T@@*eX@@Aڑ@@@BCC@@L@@AF@@R@@ABۑO@@QI@@A$BY@@#cZ@@AB#-[@@"\@@";]@@ABCDERC@/-+r+r@@@@x @@x^B]-FD@/-+rvm@@c@a-JC@/-+%+O@A6Tmc.choice.choice_pairA@--@@/-+&+9@C4#ctx' @++@@-A (@++ @@-A"t1)W@u@, , @@-A"t2*W@v@,,@@-A-Ҡ@!C@@A"+A@@E@@AD@@"B@@ABCOF@/-,!;,"N@1,yE@@0@..;C@/.D,aw,a@A6Tmc.choice.choice_primA@.C.B@@/.J,ai@@A̠#ctx@,9ww,9ww@@.YA@,9ww,9ww@@._A$prim@,9ww,9ww@@.fA(primargs @,9ww,9ww@@.mA#loc @,9ww,9ww@@.tA(primargs##_@t@,,8,,@@@.|A.w@.E@@A@@AB$C@@F"B@@A0D@@BC%IFA/.,,C,,]@AJBE.@@A@BC E /.,,4U@@TAN. E@/.,=x(xK,=x(x]@AYA@..@@/.,=x(x0,=x(xj@@^A[#tag#intA@@@s;@,<xx,<xx@@.A$flag(Asttypes,mutable_flag@@@s<@,<xx,<xx@@.A%shape++block_shape@@@s=@-<xx-<xx#@@.A.ˠ@U@A G@@U@ABT@Q@AF@@4H@@AT@BCDSH@/p.ް-Dy"y4-Dy"yG@)C"l1 $_@tz@-#Axx-$Axx@@.A.@q@A F@@q@ABp^CiG@/X.-/EyKyS-0EyKym@AA@..@@/L.-4Dy"y*@@A.F@/H.-8Cxy-9Cxy@A.pE@/0/@A.rE@//-ABxx-BBxx@@A"l1!T@RW@t}@-LBxx-MBxx@@/A/@#pF@@A@G@@A@BCDG@// -[Axx,@@A/E@//$-_:ww@@@/!E@//*6AA@/%/$@@//,-gEyKyc-hEyKyg@AA@/*/)@@//1=@@O"l1"wW@t@-qDy"y/-rDy"y1@@/:A/5@ A@@A@ӐB@@A@A@//C-~ pq-ss@A;Tmc.choice.choice_makeblockA@/B/A@@//I- qq1-ss @)T)SW@tW@tW@tW@qW@piW@nW@ox_@ob@@@og_@owA#ctx|@-hh-hh@@/vsA#tagl@-hh-hh@@/}tA$flagl@-hh-hh@@/uA%shapek@-hh-hh@@/vA)blockargsf@-hi-hi @@/wA#locf@-hi -hi@@/xA'choices W@uW@tW@o3W@o6W@np]@n&@@@n9]@n!@-ii-ii @@/yA(explicit'e@@@n@-ij-ij@@/{A2ambiguous_subterms'c%W@qW@q`W@qsW@qW@qW@pW@pW@pW@pW@pW@oC`@n@@@n@@@n@.ij$.ij6@@/|A+term_choice %ʠ,@@@o?`@o@@@o[_@o @.,psp.-psp@@/A/@$PJ@@AK@@ABsB@@gI@@ACE@@SL@@AG@@$initN@@AByA@@TCWD@@AF@@H@@4M@@ABCDEFR@/0.U qq:@A !Tmc.choice.choice_makeblock.(fun)A@00@@/x0@A0*! @BDE MA/t0'.bpp.c pp@AB0&6- $#@@ABCDL /\03.npp.opp@&$ʠ|@@@oB_@o`@o@@@o7`@o/A0AM@/D0H. pp!@AA@0E0D@@/,0L.psp{ @@A0I#L@/ 0P.$t3t;.7w|w@A A@0N0M@@/0U.2vv.2vv@ W@p@@@p_@qB*rev_before'٠`@n@@@n@.ss5.ssF@@0r}A&choice &W`@n@@@n@.ssH.ssN@@0~~A%after 'Ӡ`@n@@@n@.ssP.ssU@@0A&constr#[@@@p_@p@.s[sg.s[sm@@0A0@$K@!L@@AB@0M@@A@O@@ABC@@A@B@DN@@A{BCDS@/0.%t=tW.+u`u@AA@00@@/0a@kAO0O@/0.#t t.#t t1@ ,@@@p_@pvB[0'O@/p0 n@@zA^0*O@/l0°.s[sw."st@AA@00@@/H0ǰ/ss/ss@-*@@@pa@pAp-h0Ϡ>8@BC4DP@/00ڰ/s[sc@@Ay0N@/0ް/ii/ii@AA@00@@/0/ii/ii@AA@00@@/0/#ii @@A$args(Š4W@oWW@nW@oW@m`@nw@@@ny@/6ii/7ii@@0zA0@ @K@@AB`BCDK@/1/CiRi\/DiRi@&(5W@nb@@@nm̐A1@BqC DI@/1/TiRiV@@A1IA/1/Zii#/[iiN@AܐB1@*@A'BCH /1*/eii,/fiiD@@z@@nZy@@nYB1.I@/p15/pii@@A12H@/T19AA@15<@4@A1@BC'E@/@1B/})tt/~)tu @@@-'-&@@@q@@@q@@q@@@q@@q@@q@@@q@@q?A1W@ A@@A@+|C@@A-B@@D@@E@@ABC@B@/,1o/)tu /+u`u@AVA@1m1l@@/1t2@@YA1pA@/1w/'tt/'tt@a@qg`A1x!A@/1/'tt@@eA1|%A@/1/&tbtn@@i@#1)A@/1/*uu*@AoA@11@@/1/*uu4/*uu^@.b@@@qc@qzC6'new_dst-t-s@@@q@@@q@/)tu/)tu@@1A1@A@@A@+ĐB@@=C@@AB@B@/1/+u`ux/+u`u@AA@11@@/1.@@ 1A@/1sAuA@11@@/1/ pp/ pp@AzA@11@@/t1z@|@]$args @0pp0pp@@1A1Š@ A@@A@TC@@BE@@ABRD@@cB@@AC@A@/p1ܰ0rwr0rs@#exnG@@@pb@p̐C)arguments /@@@ob@o@0. qQqa0/ qQqj@@1A1@C@@A!BA!EB@@B@/ǐB@@KE@@ABWD@@zC@@AC@C@/d20Jrwr0Krwr@/@@@pc@p.A02"D@/H20Vrr0Wrr@AA@22@@/@2 D@A72)C@/42"0]qq0^rXrg@A A@2 2@@/$2'0brr60crrV@00@@@o@@@oc@oBѠ$info@,]!t0&lambda@@@o@@@oc@o@@o0x@@@oc@o@@oc@o@0qmq0qmq@@2WA2R@%C@@A`@B[C@/2];@AA(2XC@/2_0qmq0qqAA &Tmc.choice.choice_makeblock.(fun).infoA@2^2]@@/2e0 qQq]@@K@2b@n@AiB@/2m0qmq@A A@2j2i@@/2q@@<0qmq{@!t85@@@o@@@o@0qmq0qmq@@2A2@A@@A@@A@/20h`hf0hh@A7Tmc.choice.choice_applyA@22@@/20hh0hh@A=Tmc.choice.choice_apply.(fun)A@22@@/20h`hh0h`h@(^@m@@@m^@m^@mA&#ctx@0]]0]]@@2`A@0]]0]]@@2aA%apply@0]]0]]@@2bA&No_tmc\#1@@@A0]]1]]@@2cA0apply_no_bailout@@@m__@m#@1 f~f1 f~f@@2pA2Ϡ@D@@A!A@@F@@AB1C@@#exnE@@A0B@@BCCF@/x21!h`hw1"h`h@AZA@22@@/p2_@\AD2F@/d21(h:hB1)h:h\@AaA@22@@/$2@cAK+ap_tailcall/2tailcall_attribute@@@m9`@m$@18gg19gg@@3qA2@-@AF@@.@AB+*C$F@/3 1Dhh)1Ehh.@@}Ae%other@@@m3@1Nhh 1Ohh%@@3rA3CA@B>@=@AF@@<@ABC;F@/3 1[gh1\gh@@A{3@'~G@@AQ@Q@ABNCGG@/3,1ggg1hgg@@A3* G@/311lf~f@@A3.YXCRE@/l371rcc1sf>fI@AA@3534@@/`3<1wcd1xde @VW@YW@k@@@k_@kA9explicit_tailcall_request %@@@h]@h@1]]1]]@@3\dA!f)!t@@@h@1^^1^^@@3ieA+specialized*1@@@i#_@h@1^^1^^@@3ugA$args(0M@@@kk@@@kj_@j@1`.`<1`.`@@@3hA(tailcall@)@@@k~_@kx@@ky@@@k_@kz@@k{_@kw@1bb1bb@@3lA3@@A(_nontailJ@@@2M@@ABC@ZI@@AOK@@EL@@A@*N@@ABCDR@/P31cdv@AA@33@@/$31ee#1e.en@A$A@33@@/31ee1ff@A/A@33@@/ 31ee1ff@A4A@33@@/ 3@6Az3(N@/ 3ǰ2bb2ccAA Tmc.choice.choice_apply.tailcallA@33@@/ 3Ͱ2bb@@@A3ʠ2*('@BCDM@/ 3հ2b^bt2b^b@@@@keb@kiOA$kind*@@@j`@j@2%aa2&aa@@3iA%arity*@@@k`@j@21aa22aa@@3jA' ( 3@(XQ@@A+@Bb@+@ OM@@ABC-b`@P-N@@Ac@/@ABCD.Q@/ 4>@A51%4Q@/ 42Rbb2Sbb@@A=$args0@@@kQ@@@kP@2bbb2cbb@@4+kA1G0;4&/@W@AR@@-@ABCV)DOR@/ 442obb!2pbbX@* 1@@@k(@@@k'@@@k&CgMcLW4BGCnADgP@/ l4L2bb5@@ApVlU`4K P@/ P4R2`.`8@@A4O@@AB|DuL@/ 84Z2``2``@~@@@jb@jA4^@L@@A@B@@ACDL@/ 04m@A4h L@/ 04o2_g_w2_`@ @@@jb@jc@iSB-4vL@/ 4}2__2__@ @@@iW@jd@jA;4&M@/ 4@A=4(L@/ 42_L_Z2`` @@AB4-L@/ 42^_ 2^_-@*_@h BK4E2BCO@/ 42^^g@@AR4K@/ |42fJf^2fJfj@@@@m_@mA] 1|@@@h@2fJfR2fJfZ@@4fA4`@@A@BCJ@/ x4@+A4J@/ 42^^@@/Ao4 CI@/ 4°2^"^@2^"^E@@6A4@) I@@A@@AB@@ACI@/ 4ϰ3 ^r^3 ^r^@@@@h`@hIA04Ӡ@)3J@ABCJ@/ 4@RA94 J@/ 43^F^m3^F^q@@WA>4J@/ 4$AYA@44@@/ 43%]]^@@]@C4@@A#B C@/ p43.cc,@@+Ap+0@$tailm@537bb@@4mA4@ A@@A@@A@/ `53@cc3Acc@@>A5 A@/ T5 3Ec~cC@@B@5 A@/ L53Ke.e<3Le.em@A~A@55 @@/ <53Pe.eC@AA@55@@/ 53Te.e^3Ue.ek@'@@@la@lA5@B@@A$oA@@B@uC@@A}B@@D@@AB@D@/ 56&@@51@@AA@/ 5<3wd-d;3xde @AA@5:59@@/ 5A3|d-dB@AA@5>5=@@/ 5E3dOdp3dOd@AA@5C5B@@/ 5J3dd3dd@*2#@@@k@@@kb@lÐB$tail0@@@k@3cd 3cd$@@5enA#dst00@@@k@@@k@3cd&3cd)@@5soA5n@A@@ApC@@ B@@AB@2oB@@AȐC@@E@@AD@@F@@ABC@G@/ 53dd3dd@@@@lb@l$A>5$E@/ l5]@@@5@&@A"@B!B@/ X53hh3hh@AA@55@@/ L5@@5@$A@@A@B@@A@A@/ 053]I]\3]I]p@ 1Tmc.choice.choiceC 6#ctx @3>O:OK3>O:ON@@5 A+ @4>O:OP4>O:OT@@5A!t @4>O:OU4>O:OV@@5A!x,X!t@@@Sw@4]/]>4]/]?@@55A#lam2@@@Sx@4]/]A4]/]D@@56A5@/C@@D@@AB%A@@-B@@"E@@ABC@F@/ 540]t]|41]t]@ACA@55@@/ 545]I]Q@@GAE5E@/ 549\\4:\]@ IMCL#lam2@@@Sr@4F\\4G\\@@63A#lev3,lambda_event@@@Ss@4R\\4S\\@@64A6@5@AE@@D@@AB5@4@AC1F@/ 6%4`]]4a]].@AsA@6#6"@@/ 6*4e\\@@wA)6'E@/ 6.4iTRR4jTRR@ y}C}"l13@@@S@4wRRR4xRRR@@6@A"l23@@@S@4RRR4RRR@@6JA"l1,]@T@4SRR4SRR@@6R8A6M@l@A F#E@@D@@ABn9CiG@/ |6]4URR4URS @AA@6[6Z@@/ p6b4TRR@@A16_FA/ l6h4SRR4SRR@AB86gBMC}E / \6r4SRR@@A@6oE@/ ,6v4XSSSk4XSSS@ ŐCƠ"l13Q@@@S@4VS S 4VS S"@@6A"l23[@@@S@4VS S$4VS S&@@6A"l33e@@@S@4VS S(4VS S*@@6A"l1,c]@TK@4WS/S;4WS/S=@@6:A6@@ G-F@@AB$E@@D@@ABCH@/ 64XSSS<@AA@66@@/ 64YSS4YSS@AA@66@@/64XSSS[@@AB6GA/64WS/S@4WS/SO@ABI6@@@ABCF /6̰5WS/S7@@AR6 F@/6а5 [[5 [[@ C"l13@@@S[@5ZZ5ZZ@@6-A"id-j!t@@@S\@5&ZZ5'ZZ@@6.A"l23@@@S]@50ZZ51ZZ@@6/A6@@AE@@(F@@ABD@@H@@ABCH@/t75B[^[p5C[^[@ RVC77@"BCG@/`75L[[5M[[@A_A@77@@/T75Q[^[f@@cAC7 F@/75U\\5V\\@ eiCi"l13@@@Sg@5c[[5d[[@@7,0A#ids@@@@Si@,o@-!t@@@Sl@4O@@@Sm@@Sk@@@Sj@@Sh@5[[5[[@@7Q1A"l24#@@@Sn@5[[5[[@@7[2A7V@u@A4E@@@F@@ABD@@H@@AzEBCuH@/7i5\]\o5\]\@ CO7i@OBCG@/7s5\\5\\@AA@7q7p@@/7x5\]\e@@A[7u F@/7|5ZlZ5ZlZ@AA@7z7y@@/75ZlZt@@A͠"id@@@ST@5Z$Z85Z$Z:@@7+A"ls,ʠ4g@@@SV@@@SU@5Z$Z<5Z$Z>@@7,A"ls,/T@Xd@5ZCZO5ZCZQ@@7VA7@@A'E@@F D@@ABCFA/75ZCZT5ZCZh@AB57@ @ABCE /p75ZCZKD@@ A>7 E@/7İ5{YuY6{YuY@ C"l14@@@SH@6uXX6uXX@@7'A%cases-@&stringQ@@@SK@4@@@SL@@SJ@@@SI@6,uXX6-uXX@@7(A$fail 4@@@SN@@@SM@6:uXX6;uXX@@8)A#loc@@@SO@6DuXX6EuXX@@8 *A)cases_lhs$ՠ2@@@W]@W@@@W]@W@6VwXX6WwXX@@8PA)cases_rhs'Š4@@@W]@W@@@W]@W@6hwXX6iwXX@@81QA"l1-]@W@6pyYY$6qyYY&@@89RA84@,H@@AfF@@6J@@A%I@@[@ABCQE@@K|G@@AM@@MD@@ABc.CD^M@/8R6zY<YU6zY<Yt@ C8R@@A @Bo:CDjL@/8^6}YY6~YZ#@AA@8\8[@@/8c6zY<YD@@A8`KA/8i6yYY)6yYY8@AB8h4*@'@A#@BPCDJ /8u6yYY @@A8r J@/8y6wXX6wXX@@s@c@@W^@WАA8@K@A@BEDG@/86wXX.@@A8G@/86oWEWb6oWEW@ ߐC"l15o@@@S<@6gUU6gUU@@8$A"sw5-lambda_switch@@@S=@6gUU6gUU@@8%A#loct@@@S>@6gUU6gUU@@8&A*consts_lhs % @@@U]@U@@@U]@U@7iVV7iVV)@@8EA*consts_rhs (v5@@@U]@U@@@U]@U@7iVV+7iVV5@@8FA*blocks_lhs% A@@@V!]@V@@@V]@U@7,jVSV_7-jVSVi@@8GA*blocks_rhs(5@@@V"]@V @@@V]@V@7>jVSVk7?jVSVu@@9HA"l1.]@V'@7FlVV7GlVV@@9IA9 @-kJ-nG@@A8L@@'K@@AB`I@@OH@@AC5@MF@@PO@@ABxD@@E@@AA BCD>q@9@ABC21DjL /H9_7lVV@@A9\ L@/49c7jVSVx7jVSV@@@w@@V&^@VA9k@^@AYXBCKJDI@/ 9w7jVSV[/@@A9t I@/ 9{7iVV87iVVO@@Š@@@U^@UҐA9@0Ba`CF@/97iVVE@@A9F@/97IPP7IPQ@@Aޠ$prim F@@@S @7HPP7HPP@@9A(primargs..6v@@@S @@@S @7HPP7HPP@@9A#locp@@@S @7HPP7HPP@@9A9@@AD@@)F@@AB E@@BCF@/9İ7eUU8eUU@C(bindings//@@@S6@@@S5@8cU1U@8cU1UH@@9"A$body6@@@S7@8cU1UJ8cU1UN@@9#A#ctx /T@U@8$dUSU_8%dUSUb@@9BA(bindings /(T@U@8,dUSUd8-dUSUl@@9CA9@.PF@@AG1E@@B$D@@H@ABCI@/h:8@fUU8AfUU@ASA@::@@/\: 8EeUU@@WAC:H@/H:8IdUSUo8JdUSU@@0@*@@U^@UeBP:@"@A!@6@AB3C.E@/8:"8]dUSU[@@oAY: E@/:&8a]T1TE8b]T1TZ@quCw"vk79@@@S"@8qZSS8rZSS@@::A#var0!t@@@S#@8~ZSS8ZSS@@:GA#def7@@@S$@8ZSS8ZSS@@:QA$body7#@@@S%@8ZSS8ZSS@@:[A#def0!]@T@8\T T8\T T@@:c=A:^@D@@A~@H%E@@AB@@A5F@@AG@@ABCI@/:s8^T^Tf8^T^T@AA@:q:p@@/:x8]T1T9@@AO:uHA/:~8\T T8\T T-@A̐BV:}@@ABCG /:8\T T@@A_: G@/:8aTT8aTU @ܐC"lk1G@@@S,@8_TT8_TT@@:A"vk7@@@S-@8_TT8_TT@@:A#var15@@@S.@8_TT8_TT@@:A#def7@@@S/@8_TT8_TT@@: A$body7@@@S0@9_TT9_TT@@:!A#ctx0T@T@9 `TT9 `TT@@:?A(bindings0HT@T@9`TT9`TT@@:@A:֠@/7{I@@AJ@@$D@@ABK@2E@@RH@@ABC@@AAF@@MG@@ABDL@/h:9-bUU9.bUU0@A@A@::@@/L:92aTT@@DAg:K@/8:96`TT97`TT@@7@1@@U^@URCt;@(@A"%C!DH@/$;9I`TT@@[A|; H@/;9MNQQ9NNQQ@@`A]%apply6@@@S@9WMQQ9XMQQ@@; A;@D@@A;@B8C3D@/;'9bCOO9cCOP @@uAr!t0T@S@9jBOO9kBOO@@;37A;.@L@A DKBFDA/;<9wBOO9xBOO@AB;; U BPC /;E9BOO@@A;BC@/D;I9?OYO]T@@@;F C@/;O]@@$bodyW@U@9aTT9aTT@@;XAA;S@ A@@A@E@@AɐC@@B2B@@ĐD@@AC@A@/;jAA@;e;d@@/;l@@B$bodyW@T@9]T1T>9]T1TB@@;u>A;p@ A@@A@!D@@ADC@@QB@@AB@A@/;AA@;;~@@/;@@$body W@U@9eUU9eUU@@;DA;@ A@@A@B@@A@A@/;9tXeXmP@AA@;;@@/;@A *consts_rhsW@XAW@WW@WW@VW@V@V@9mVV9mVV@@;JA*blocks_rhs@V@9nW W9nW W!@@;KA-sw_failaction@V@9oWEWR9oWEW_@@;LA)sw_consts2\@ @@@V^@Vᠠ@AW@X\W@WGW@WW@V@@V@@@V^@V@:qWW:qWW@@;MA)sw_blocks @@@@W^@W@@@W@@@W^@V@:3rWW:4rWW@@;NA"swW@@@Wh^@W@:?sX X,:@sX X.@@<OA<@0cC@@A[D@@oE@@ABA@@H@@A4G@@BUF@@_B@@ACD@>E@@AeD@@F@@ABtC@@B@@AC@H@/<-:hsX X1:isX Xa@A{A@<+<*@@/<2:msX X(@@A9A=9@ A@@A@B@@A@A@/p=G"AA@=B=A@@/`=I$@@G#lam&W@Y@;\\;\\@@=R[A=M@ A@@A@IB@@A@A@/X=[fAA@=V=U@@/H=]h@@#lam'W@Y@;]I]V;]I]Y@@=f\A=a@ A@@A@B@@A@A@@* ?/home/ci/builds/workspace/main/flambda/false/label/ocaml-alpine F/home/ci/builds/workspace/main/flambda/false/label/ocaml-alpine/lambda@  +#TmcP:,Stdlib__List𠠑Tp  (A d0caml_fresh_oo_id &No_tmc %Ident &Stdlib ̠)Debuginfo (Location $&Lambda |3P9<<-lambda/tmc.ml#H.Assert_failure+choice_prim4)<O<.Stdlib__Option'\*l\\_bPe0ID𠠑CB&offsetĠY̠#dstܠ`䠠SVȠ Dd p=This call could be annotated.@ i 1[@tailcall false] $Misc +[@tailcall] ̠ Ԡ0[@tail_mod_cons] 蠠 𠠐z "@ A@$this A@+constructor  A@+application  A@#may A@"be A@/TMC-transformed A@"in A@'several !A@)different %A@%ways. )A@&Please -A@,disambiguate 1A@"by 5A@&adding 9A@"an =A@(explicit AA@* attribute FA@"to JA@#the NA@$call RA@$that VA@&should ZA@"be ^A@$made bA@/tail-recursive, fA@"or jA@a mA@* attribute rA@"on vA@%calls zA@$that ~A@&should A@#not A@"be A@,transformed.@ %a:@ this@ constructor@ application@ may@ be@ TMC-transformed@ in@ several@ different@ ways.@ Please@ disambiguate@ by@ adding@ an@ explicit@ %a attribute@ to@ the@ call@ that@ should@ be@ made@ tail-recursive,@ or@ a@ %a attribute@ on@ calls@ that@ should@ not@ be@ transformed.!*Format_doc!!P "This call is explicitly annotated.@!h$!|0[@tail_mod_cons]!!z A@$this A@+constructor A@+application A@#may A@"be A@/TMC-transformed A@"in A@'several A@)different A@%ways. A@$Only A@#one A@"of A@#the A@)arguments A@#may A@&become A@a A@#TMC A@%call, A@#but A@'several A@)arguments A@'contain  A@%calls A@$that A@#are A@*explicitly A@&marked A@"as #A@/tail-recursive. 'A@&Please +A@#fix /A@#the 3A@(conflict 7A@"by ;A@)reviewing ?A@#and CA@&fixing GA@#the KA@+conflicting OA@,annotations.@ L%a:@ this@ constructor@ application@ may@ be@ TMC-transformed@ in@ several@ different@ ways.@ Only@ one@ of@ the@ arguments@ may@ become@ a@ TMC@ call,@ but@ several@ arguments@ contain@ calls@ that@ are@ explicitly@ marked@ as@ tail-recursive.@ Please@ fix@ the@ conflict@ by@ reviewing@ and@ fixing@ the@ conflicting@ annotations.!! "X "l""@"%t"Р"#X"#l%#@"%t##Ԡ$4$t$_dps$$$"$%$G&@J'P'ܠ '䠠T(W(젠Z):+`,c0pf0𠠐%block@@@$_arg@@@@-block%d_arg%d2H.Stdlib__Printf2PY2`{3T~3h340%block4Tl4\4蠠AA5~6t)Tmc.Error6|m6ܠt:\:@(Warnings0Ef{&)Unit_info0'T Χ@aR%Types0"|Vȷ`X .Type_immediacy00$ jbv\"k&0"Q&d5x:%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__Printf0rwOt:=:栠.Stdlib__Option0i]3މr+Stdlib__Map0*4ɇ2.Stdlib__Domain06wI62J{V.Stdlib__Digest0#z25I*.Stdlib__Buffer0,I[?z&Stdlib0t0VoS%{<F:%Shape0 M``ll)Primitive0dU=\I/}$Path0k.tbGmᠠ)Parsetree0v o[pY Y+Outcometree0BuG^)= 9c $Misc0Bpg]?[q)Longident0wP q;ɡ(Location0nBɊOn?7~ؠ)Load_path0,j " nn7ݠ&Lambda0H~ށpFE#㠠,Identifiable0]/*N %Ident0>ЃzV)j⠠*Format_doc0uy@GmWUࠠ#Env0S B2)Debuginfo0_ |PooGq*Data_types0v\3,Svh*Cmi_format0`M{?w}@0CamlinternalLazy0zY# #4#-8CamlinternalFormatBasics0|.e1R$|o5Build_path_prefix_map0DGl}%Y5Lhi(Asttypes0eT$BbRM dc@aGk\ak>@@@:3