Caml1999I031+Y-(Location!t8@@)loc_start@&Stdlib&Lexing(position@@@4parsing/location.mliZZ@@A'loc_end@&Lexing(position@@@[[7@@)B)loc_ghost@$boolE@@@\8:\8J@@7C@@A(Warnings#loc@@@@@@@+Y,]KL@@@@D@A@$noneI@@@@8f]]9f]i@@QD@'is_none@@@@.@@@@@@JiKi@@cE@'in_file@&stringO@@@'@@@@@@^l_l@@wF@$init@s&Lexing&lexbuf@@@@@@@$unitF@@@@@@@@|o\\}o\@@G@$curr@&Lexing&lexbuf@@@Z@@@@@@ss@@H@+symbol_rloc@&@@@l@@@@@@vGGvGa@@I@+symbol_gloc@8@@@~@@@@@@wbbwb|@@J@'rhs_loc@#intA@@@@@@@@@{{ @@K@,rhs_interval@@@@@@@@@@@@@@@@}  }  *@@L@,get_pos_info@&Lexing(position@@@@@@;@@@@@@@@@@@@ , , , c@@M@#loc8!a@@A#txt@ C  C  @@0O#loc@@@@"D  #D  @@;P@@A@Y@@@@@(B } })E  @@@@ANA@'mknoloc@!a@0@@@@@@<G  =G  @@UQ@%mkloc@!a@@@@@ @@@@@@@@TH  UH  @@mR@*input_namef#ref @@@@@@@gM  hM  @@S@,input_lexbufy#ref&optionJ&Lexing&lexbuf@@@@@@@@@@N  N  >@@T@3input_phrase_buffer#ref&Buffer!t@@@@@@@@@@U 4 4U 4 `@@U@(echo_eof@4@@@8@@@@@@Z  Z  @@V@%reset@G@@@K@@@@@@[  [  @@W@5rewrite_absolute_path@{@@@@@@@@@`  `  @@X@-absolute_path@@@@@@@@@@e  e  @@Y@-show_filename@@@@@@@@@@g  g  @@Z@.print_filename@&Format)formatter@@@@@@@@@@@@@@@k | |k | @@3[@)print_loc@/)formatter@@@@@@@@@@@@@@@4m  5m  @@M\@*print_locs@I6)formatter@@@@$listI@@@@@@@@@@@@@@Un  Vn  @@n]@2highlight_terminfo@j&Lexing&lexbuf@@@@s`)formatter@@@@*A@@@@@@@@@@@@@@@@}s55~tM{@@^@#msg8@@@AP@&Format)formatter@@@@@@@@@@@@@@@{{@@@@_A@#msg#loc0u@@@@@@@'format4!a@&Format)formatter@@@K@@@F@@@@@@@@@@@}}I@@`@+report_kind8@@,Report_errorB@@^`^n@@b.Report_warningC@@@@@oqo@@c7Report_warning_as_errorD@@@@@@@d,Report_alertE@@@@@@@e5Report_alert_as_errorF@@@@@@@+f@@A@@@@@KK@@@@.aA@&report8@@$kindH@U@@@'(@@@h$mainI@i@@@23%@@Ki#subJ@x@@@@@@B&(C&7@@[j@@A@@@@@FG89@@@@_gA@.report_printer8@@"ppL@@ @@@?@f&Format)formatter@@@@@M@@@A@@@B@@C@@D@@Emkmn@@l.pp_report_kindM@@!@@@6@@@@7@&Format)formatter@@@8@g@@@9@@@:@@;@@<@@=@@>@@m+pp_main_locN@@E@@@-@;@@@.@&Format)formatter@@@/@z@@@0;@@@1@@2@@3@@4@@5  5W@@n+pp_main_txtO@@i@@@"@_@@@#@&Format)formatter@@@$@@&Format)formatter@@@%e@@@&@@'i@@@(@@)@@*@@+@@,XZ@@o*pp_submsgsP@@@@@@@@@@&Format)formatter@@@@>@@@@@@@@@@@@@@@ @@!  @@%p)pp_submsgQ@@@@@@@@@@*&Format)formatter@@@@c@@@@@@@@@@@@@@01?c@@Iq-pp_submsg_locR@@@@@@@@@@N&Format)formatter@@@@@@@ @@@ @@ @@ @@ @@TdfU@@mr-pp_submsg_txtS@@@@@@@@@@r&Format)formatter@@@@@}&Format)formatter@@@@@@@@@@@@@@@@@@@@@s@@A@@@@@;; @@@@kA@2batch_mode_printer9@@@F@@@t@9terminfo_toplevel_printer@&Lexing&lexbuf@@@GN@@@H@@I@W@@u@5best_toplevel_printer@<@@@J`@@@K@@L@YYY@@v@,print_report@)formatter@@@M@g@@@NY@@@O@@P@@Q@"@@w@.report_printer#ref@m@@@R@@@S@@T@@@U@OOO@@x@6default_report_printer@@@@V@@@W@@X@@@y@.report_warning@@@@Y@!t@@@Z@@@[@@@\@@]@@^@>>>r@@4z@0warning_reporter-#ref@@@@_@ !t@@@`@@@a@@@b@@c@@d@@@e@?@-@@X{@8default_warning_reporter@@@@f@,!t@@@g@@@h@@@i@@j@@k@]VV^V@@v|@6formatter_for_warningso#refub)formatter@@@l@@@m@rs@@}@-print_warning@I@@@n@y)formatter@@@o@g!t@@@p@@@q@@r@@s@@t@J@@~@-prerr_warning@k@@@u@!t@@@v4@@@w@@x@@y@@@@,report_alert@@@@z@%alert@@@{Oc@@@|@@@}@@~@@@@@@@.alert_reporter#ref@@@@@%alert@@@r@@@@@@@@@@@@@@666t@@ A@6default_alert_reporter@@@@@%alert@@@@@@@@@@@@@@@@'B@+print_alert@@@@@()formatter@@@@%alert@@@@@@@@@@@@@0**1*c@@IC@+prerr_alert@@@@@%alert@@@@@@@@@@@JK@@cD@*deprecated#def&@@@@@@#use1@@@@@@@7@@@@@@@@@@@@@@@@@@@xLLyL@@E@%alert#defT@@@@@@#use_@@@@@@$kindF@@@@m@@@@Q@@@4@@@@@@@@@@@@@@@@F@%error8@@@AS@@@@@@@+++>@@@@GA@%error#loc#@@@@@@#sub.@@@@@@@@@@@@@4@@@@@@@@@@@@H@&errorf#locQ@@@@@@#sub\B@@@@@@@@@@'format4!a@Š#&Format)formatter@@@à@@@ A@@@@@@@@@@@@@*+@@CI@0error_of_printer#loc@@@@@@#sub@@@@@@@@@@@\I)formatter@@@@!a@@@@@@@@@ @@@@@@@@@@@@ghPz@@J@5error_of_printer_file@@~k)formatter@@@@!a@ @@@@@@@@ @@@@@@@@|||@@K@5register_error_of_exn@@#exnG@@@'@@@@@@@@.@@@@@@      ;@@L@,error_of_exn@@@@BР"Ok@@@砠1Already_displayed@@@@A@@@@@@@@@!!!!@@M@ %Error =@@@@@@A&_none_@@A@NB@ 7Already_displayed_error @@@A @OB@,raise_errorf#locJ@@@@@@#subU;@@@@@@@@@@'format4!a@&Format)formatter@@@@@@!b@@@@@@@@@@@$#)#)%#V#@@=P@0report_exception@9&)formatter@@@@@@@@@@@@@@@?##@##@@XQ@@<(Location0>gc 7پI{YG(Warnings0Ӷ.5S6V-Stdlib__Uchar0 |K?bޣ ˠ+Stdlib__Seq0yt\eǟ&Q,}.Stdlib__Lexing0zsc\ZoQ,Stdlib__Lazy0'rruSZY.Stdlib__Format0=z+.m׸.Stdlib__Either0 }rCT0J){9).Stdlib__Buffer0'ON͋[h#ڗA&Stdlib0>,W:(0CamlinternalLazy0G -Ϥ;I8CamlinternalFormatBasics0cEXy==>>>>>@= @ADW@@B@A(!tAOYPY@@8@@)loc_start@)&Lexing(position@@@ ԰_Z`Z@@wA'loc_end@8&Lexing(position@@@ װn[o[7@@B)loc_ghost@K@@@ ڰz\8:{\8J@@C@@A(Warnings#loc@@@!@@@@Y]KL@@@@@@880Z @@Ш@г;<;Z Z@@C0@ZQ8@@@AX@@B@#B@ @@@@@@@@A  @@P@C@  @I@EE=[%@@Ш@гHIH['[6@@P@@S@C@ @L@HHC\8C@@Ш@гK$bool\8E\8I@@S.@@V@C@ 1@R@@AгN(WarningsNYY@@W;@@P@@PO@鐠  Note on the use of Lexing.position in this module. If [pos_fname = ""], then use [!input_name] instead. If [pos_lnum = -1], then [pos_bol = 0]. Use [pos_cnum] and re-parse the file to get the line and character numbers. Else all fields are correct. _NNdY[@@@@@@0@@A$nonef]af]e@г!tf]hf]i@@ @@@;@@@f]]@)ocaml.doc A An arbitrary value of type [t]; describes an empty ghost range. gjjgj@@@@@@@'D@@-'is_noneii@б@гנ!t&i'i@@ @@@<0(''(((((@FA.@A@@г$bool5i6i@@ @@@=@@@@@>@@@@i @? 4 True for [Location.none], false any other location LjMj@@@@@@@dE@@%'in_fileXl Yl@б@г&stringcldl@@ @@@?0eddeeeee@>S,@A@@г#!trlsl@@ @@@@@@@@@A@@@}l @| 6 Return an empty ghost range located in a given file. mmZ@@@@@@@F@@%$inito\`o\d@б@гk&Lexing&lexbufo\go\t@@ @@@B0@AV/@A@@б@г&stringo\xo\~@@ @@@C@@г$unito\o\@@ @@@D@@@@@E!@@@'@@F$* @@@o\\@ΐ Z Set the file name and line number of the [lexbuf] to be the start of the named file. pq@@@@@@@G@@7$currss@б@г&Lexing&lexbufss@@ @@@G0@Sk/@A@@г!tss@@ @@@H@@@@@I@@@s @ : Get the location of the current token from the [lexbuf]. ttE@@@@@@@3H@@%+symbol_rloc'vGK(vGV@б@г$unit2vGX3vG\@@ @@@J043344444@>V,@A@@г!tAvG`BvGa@@ @@@K@@@@@L@@@LvGG @@cI@ @@+symbol_glocWwbfXwbq@б@г$unitbwbscwbw@@ @@@M0dccddddd@1F@A@@г"!tqwb{rwb|@@ @@@N@@@@@O@@@|wbb @@J@ @@'rhs_loc{{@б@г<#int{{ @@ @@@P0@1F@A@@гR!t{ { @@ @@@Q@@@@@R@@@{ @ n [rhs_loc n] returns the location of the symbol at position [n], starting at 1, in the current parser rule. y~~z@@@@@@@K@@%,rhs_interval}  }  @б@гy#int}  }  @@ @@@S0@>S,@A@@б@г#int}  "}  %@@ @@@T@@г!t}  )}  *@@ @@@U@@@@@V!@@@'@@W$* @@@}  @@L@@@*,get_pos_info , 0 , <@б@г&Lexing(position , > , M@@ @@@X0@F["@A@@Вг&string& , Q' , W@@ @@@Y@@гޠ#int4 , Z5 , ]@@ @@@Z @@г점#intB , `C , c@@ @@@[.@@@# @@\4( @@@:@@]7=@@@S , ,@R2 file, line, char _@ d d`@ d {@@@@@@@wM@ @JA(#locBlB } mB } @А!a@_0srrsssss@_w(8@@^@A@A@G@B@@@B } }E  @@@@N@AB } B } @@BA@8@A#txt@D@`C  C  @@O#loc@P@@@dD  D  @@P@@A@Y@@@@@#@@@ @C  @@Ш@А!a7C  C  @@$@D@a<@"@D  @@Ш@г!!tD  D  @@)K@@,@D@eN@(@@A@E@@0@M@AFE@'mknolocG  G  @б@А!a@vC@q0@dtU@AG  G  @@гz#locG  G  @А!aG  G  @@@@@@s @@@!@@t@@@G  @@Q@@@"%mkloc H  H  @б@А!a@~C@w0        @7H@AH  H  @@б@гϠ!tH  H  @@ @@@x@@г#loc+H  ,H  @А!a&!2H  3H  @@@,@@@z( @@@@@{+@@@3@@|.,@@@AH  @@XR@@@4V0 {1 Input info} QK  RK  @@@@@@0POOPPPPP@DU@A*input_name ]M  ^M  @г0#reffM  gM  @г͠&stringpM  qM  @@ @@@"@@@@@@' @@@}M  @@S@@@-,input_lexbuf N  N  $@г[#refN  ;N  >@г&optionN  4N  :@гp&Lexing&lexbufN  &N  3@@ @@@0@[V4@A@@@ @@@ @@@+@@@ (@@@N  +@@T@-@@3input_phrase_buffer5U 4 8U 4 K@г#refU 4 ]U 4 `@гN&optionU 4 VU 4 \@г&Buffer!tU 4 MU 4 U@@ @@@-0@@j4@A@@@ @@@/ @@@+@@@1 (@@@U 4 4+@@U@-@@ ! {1 Toplevel-specific functions}  X c c X c @@@@@@0        @"L@A(echo_eof6Z  Z  @б@г{$unit"Z  #Z  @@ @@@2@@г$unit/Z  0Z  @@ @@@3'@@@@@4*@@@:Z   @@QV@ @@0%reset7E[  F[  @б@г$unitP[  Q[  @@ @@@50RQQRRRRR@ID@A@@г$unit_[  `[  @@ @@@6@@@@@7@@@j[   @@W@ @@8 {1 Printing locations} z^  {^  @@@@@@0yxxyyyyy@(=@A5rewrite_absolute_path8`  `  @б@г&string`  `  @@ @@@8@@г&string`  `  @@ @@@9'@@@@@:*@@@`   @ rewrite absolute path to honor the BUILD_PATH_PREFIX_MAP variable (https://reproducible-builds.org/specs/build-path-prefix-map/) if it is set. a  c  @@@@@@@X@@=-absolute_path9e  e  @б@г)&stringe  e  @@ @@@;0@VQ,@A@@г8&stringe  e  @@ @@@<@@@@@=@@@e   @@Y@ @@-show_filename:g  g  @б@гY&stringg  g  @@ @@@>0@1F@A@@гh&string g   g  @@ @@@?@@@@@@@@@g   @ r In -absname mode, return the absolute path for this filename. Otherwise, returns the filename unchanged. "h  #i E z@@@@@@@:Z@@%.print_filename;.k | /k | @б@г)formatter9k | :k | @@ @@@A0;::;;;;;@>S,@A@@б@г&stringJk | Kk | @@ @@@B@@г$unitWk | Xk | @@ @@@C@@@@@D!@@@'@@E$* @@@ek | |@@|[@@@*)print_loc<pm  qm  @б@г=)formatter{m  |m  @@ @@@F0}||}}}}}@CX@A@@б@г=!tm  m  @@ @@@G@@г$unitm  m  @@ @@@H@@@@@I!@@@'@@J$* @@@m  @@\@@@**print_locs=n  n  @б@г)formattern  n  @@ @@@K0@CX@A@@б@гc$listn  n  @г!tn  n  @@ @@@L@@@@@@N  @@гC$unitn  n  @@ @@@O-@@@@@P0@@@6@@Q39 @@@n  @@]@@@9 - {1 Toplevel-specific location highlighting} q q3@@@@@@0@I^@A2highlight_terminfo>s59s5K@б@г&Lexing&lexbuf"tMO#tM\@@ @@@R@@б@г)formatter1tM`2tMi@@ @@@S,@@б@гՠ$list@tMoAtMs@г!tJtMmKtMn@@ @@@TE@@@@@@VJ @@г$unit\tMw]tM{@@ @@@WW@@@@@XZ@@@4@@Y]7 @@@F@@Z`I@@@ms55@@^@@@f # {1 Reporting errors and warnings} }w~~~w~@@@@@@0|{{|||||@vq@A - {2 The type of reports and report printers} yy@@@@@@A(#msg?C{{@@8@@@A8@u&Format)formatter@@@\ @@@]@@^@@@`@@@@{{@@@@_@@Aг#loc{ @б@г{{@@#0@H38@@@A:@@D@aD@[@@@@!@@@@A  @@г'$unit{{@@/@@9@@@>{,@@.@@^.-@#msg@} }@б#locг!t}}@@ @@@q0@ze_@A@@б@г'format4 }< }C@А!a@D@r } }@@г&Format)formatter } }/@@ @@@s*@@г$unit +}1 ,}5@@ @@@t8@@г#msg 9}7 :}:@@ @@@uF@@@B8$ @@@zN G}C@@А!aAS L}G M}I@@@F@@{X @@iΠb@@@| @@}` Y} @@ @ \}@@ s`@@@gA(+report_kindAD hKP iK[@@8@@,Report_errorB@@ r^` s^n@@ b.Report_warningC@@@@@ oq o@@ c7Report_warning_as_errorD@@@@@  @@ d,Report_alertE@@@@@  @@ e5Report_alert_as_errorF @@@@@  @@ f@@A@@@@@ KK@@@@ a@EE ^bC@@@@F@BB os o@@гD&string oE@@K0        @oe8@@@A@@@@@@@@@AJ@@@@L@HH  @@гJ&string K@@QL@@@@N@JJ  @@гL&string M@@S$N@@@@P@LL  @@гN&string O@@U4P@@@@R@@A@N@@0        @4@AOR@A(&reportGE  @@8@@$kindH@@@@  @@ +h$mainI@@@@  %@@ 7i#subJ@  @@@@@@ 0&( 1&7@@ Hj@@A@@@@@ 4 589@@@@ Lg@..) <@@Ш@г1+report_kind E  F@@90 D C C D D D D D@H8@@@A@@@@@@@@@A@@@@G@@<@883 R@@Ш@г;#msg [! \$@@C@@F@G@@B@>>4 d&+@@Ш@гA$list m&2 n&6@гF#msg v&. w&1@@N1@@@S2 @@V@G@5@M@@A@I@@0 y x x y y y y y@4@AJI@A(.report_printerKF ;@ ;N@@8@@"ppL@@@@@@ i&Format)formatter@@@@@@@ @@@@@@@@@ km @@ l.pp_report_kindM@@2@@@@@@@@ &Format)formatter@@@@f@@@ +@@@@@@@@@@@  @@ m+pp_main_locN@@Y@@@@@@@@ &Format)formatter@@@@ @@@ R@@@@@@@@@@@Ȱ    5W@@ n+pp_main_txtO@@@@@@@@@@ &Format)formatter@@@@@ &Format)formatter@@@ ~@@@@@ @@@@@@@@@@@հ 'XZ (@@ ?o*pp_submsgsP@@@@@@7@@@@ &Format)formatter@@@@ @@@@@@ @@@@@@@@@@@ S T@@ kp)pp_submsgQ@@@@@@c@@@@ :&Format)formatter@@@@@@@ @@@@@@@@@@@ z {?c@@ q-pp_submsg_locR@@@@@@@@@@ a&Format)formatter@@@@ P@@@ @@@@@@@@@@@ df @@ r-pp_submsg_txtS@@*@@@@@@@@ &Format)formatter@@@@@ &Format)formatter@@@ (@@@@@ ,@@@@@@@@@@@  @@ s@@A@@@@@ ;;  @ Ր A printer for [report]s, defined using open-recursion. The goal is to make it easy to define new printers by re-using code from existing ones.  !! @@@@@@@@@ k@[[A ko@@Ш@б@г^.report_printer kr k@@f0        @w8@@@A@@@@@'$@@@A@@б@гghg  @@o@@б@гi&report  @@q@@гn$unit  @@v#@@}$ @@%@@&)@@@H@)@x@ttT $@@Ш@б@гw.report_printer / 0@@:@@б@г|&report : ;@@E@@б@г E F@@P@@б@г+report_kind P Q@@[@@г$unit Y Z@@d@@e @@f@@g%@@h1@@@H@k@@o f @@Ш@б@г.report_printer q  r '@@|@@б@г&report | + } 1@@@@б@г 59 5I@@@@б@г!t 5M 5N@@@@г$unit 5R 5V@@@@ @@@@%@@1@@@H@@@ Xe@@Ш@б@г.report_printer Xh Xv@@@@б@г&report Xz X@@ɰ@@б@г  @@԰@@б@б@г  @@@@г$unit  @@@@ @@г$unit  @@@@ @@&@@2@@>@@@H@@@ɠɰ @@Ш@б@г̠.report_printer  @@ @@б@гѠ&report  @@@@б@гְ֠  @@#@@б@гؠ$list # $ @гݠ#msg , -@@7@@@8 @@г⠐$unit 6 7@@A@@B@@C#@@D/@@E;@@@H@H@@ C @@Ш@б@г점.report_printer N# O1@@Y@@б@г&report Y5 Z;@@d@@б@г d?C e?S@@o@@б@г#msg o?W p?Z@@z@@г$unit x?^ y?b@@@@  @@@@%@@$1@@'@H@@@ ds@@Ш@б@г.report_printer dv d@@@@б@г &report d d@@@@б@г  @@@@б@г!t  @@@@г$unit  @@ Ű@@'ư @@1ǰ@@8Ȱ%@@?ɰ1@@B@H@@#@ @@Ш@б@г".report_printer  @@*ݰ@@б@г'&report  @@/@@б@г,-,  @@4@@б@б@г./.   @@6@@г0$unit  @@8 @@B  @@г6$unit @@>@@N @@Y&@@`2@@g>@@j@H@@B@@A@>;@0@@A?>@& * {2 Report printers used in the compiler} !"@@@@@@0      @,@A2batch_mode_printerT-.@г.report_printer6 7@@ @@@@@@>@@Ut@ @@9terminfo_toplevel_printerUIJ6@б@г &Lexing&lexbufW8XE@@ @@@0YXXYYYYY@:5"@A@@гߠ.report_printerfIgW@@ @@@@@@@@@@@q @@u@ @@5best_toplevel_printerV|Y]}Yr@б@г ࠐ$unitYtYx@@ @@@0@1I@A@@г.report_printerY|Y@@ @@@@@@@@@@@YY @ C Detects the terminal capabilities and selects an adequate printer @@@@@@@v@@%Ð9 {2 Printing a [report]} @@@@@@0@5J#@A,print_reportW@б@г )formatter@@ @@@@@б@гޠ&report@@ @@@)@@гJ$unit"@@ @@@6@@@@@9@@@%@@<( @@@@ % Display an error or warning report.  ## #M@@@@@@@#w@@O.report_printerXOSOa@г #ref O|!O@б@г$unit,Od-Oh@@ @@@0.--.....@rm6@A@@г.report_printer;Ol<Oz@@ @@@@@@@@@@@+@@@IOc)@@@LOO,@ K Hook for redefining the printer of reports. The hook is a [unit -> report_printer] and not simply a [report_printer]: this is useful so that it can detect the type of the output (a file, a terminal, ...) and select a printer accordingly. XYJ@@@@@@@px@;@+6default_report_printerYde@б@гȠ$unitop@@ @@@0qppqqqqq@Dc,@A@@г.report_printer~@@ @@@@@@@@@@@ @ + Original report printer for use in hooks. @@@@@@@y@@%8 {1 Reporting warnings} @@@@@@0@5J#@A / {2 Converting a [Warnings.t] into a [report]} <@@@@@@.report_warningZ>B>P@б@г}!t>R>S@@ @@@)@@б@гV!t(Warnings>W>a@@ @@@;@@г_&option>l>r@г&report>e>k@@ @@@R@@@@@@W @@@"@@Z%@@@7@@]:@@@>>@ w [report_warning loc w] produces a report for the given warning [w], or [None] if the warning is not to be printed. ss@@@@@@@,z@,@p0warning_reporter[ !@г#ref)**-@б@г栐!t56 @@ @@@076677777@6@A@@б@г!t(WarningsI J@@ @@@@@гʠ&optionV"W(@гZ&report`a!@@ @@@+@@@@@@0 @@@"@@3%@@@9@@6<@@@O@@@;vM@@@yP@x ! Hook for intercepting warnings. ...T@@@@@@@{@_@O8default_warning_reporter\VZVr@б@гM!tVtVu@@ @@@0@h,@A@@б@г(!t(WarningsVyV@@ @@@@@г1&optionVV@г&reportVV@@ @@@+@@@@@@0 @@@"@@3%@@@9@@6<@@@VV@ِ - Original warning reporter for use in hooks. @@@@@@@|@,@I7 {2 Printing warnings} @@@@@@0@Yn#@A6formatter_for_warnings]@г#ref  @г)formatter @@ @@@"@@@@@@' @@@#@@:}@@@--print_warning^./$@б@гꠐ!t9&:'@@ @@@0;::;;;;;@FA@A@@б@г )formatterJ+K4@@ @@@@@б@г!t(Warnings\8]B@@ @@@#@@г $unitiFjJ@@ @@@0@@@@@3@@@(@@6+ @@@<@@9?@@@z@y ] Prints a warning. This is simply the composition of [report_warning] and [print_report]. KK@@@@@@@~@ @L-prerr_warning_@б@гN!t@@ @@@0@ez,@A@@б@г)!t(Warnings@@ @@@@@г$unit@@ @@@!@@@@@$@@@*@@'- @@@@ː U Same as [print_warning], but uses [!formatter_for_warnings] as output formatter. $4@@@@@@@@@:6 {1 Reporting alerts} 666Q@@@@@@0@J_#@A - {2 Converting an [Alert.t] into a [report]} SSS@@@@@@,report_alert`@б@г!t@@ @@@)@@б@г%alert(Warnings!"@@ @@@;@@г&option./@г2&report89@@ @@@R@@@@@@W @@@"@@Z%@@@7@@]:@@@K@J q [report_alert loc w] produces a report for the given alert [w], or [None] if the alert is not to be printed. WX4@@@@@@@o@@,@p.alert_reporterac6:d6H@г6#refl6qm6t@б@г)!tx6Ky6L@@ @@@0zyyzzzzz@6@A@@б@г%alert(Warnings6P6^@@ @@@@@г &option6i6o@г&report6b6h@@ @@@+@@@@@@0 @@@"@@3%@@@9@@6<@@@O@@@;6JM@@@66P@? Hook for intercepting alerts. uuu@@@@@@@A@_@O6default_alert_reporterb@б@г!t@@ @@@0@h,@A@@б@гk%alert(Warnings@@ @@@@@гt&option@г &report  @@ @@@+@@@@@@0 @@@"@@3%@@@9@@6<@@@@ + Original alert reporter for use in hooks. )* @@@@@@@AB@,@I?5 {2 Printing alerts} :;(@@@@@@098899999@Yn#@A+print_alertcF*.G*9@б@г!tQ*;R*<@@ @@@@@б@г")formatter`*@a*I@@ @@@)@@б@г%alert(Warningsr*Ms*[@@ @@@;@@гؠ$unit*_*c@@ @@@H@@@@@K@@@(@@N+ @@@:@@Q=@@@**@ Z Prints an alert. This is simply the composition of [report_alert] and [print_report]. dd@@@@@@@C@ @d+prerr_alertd@б@гd!t@@ @@@0@}x,@A@@б@г?%alert(Warnings@@ @@@@@г-$unit@@ @@@!@@@@@$@@@*@@'- @@@@ᐠ S Same as [print_alert], but uses [!formatter_for_warnings] as output formatter. :J@@@@@@@D@@:*deprecatedeLPLZ@б#defг!tLaLb@@ @@@0      @Uj.@A@@б#useгˠ!tLkLl@@ @@@@@б@гڠ!t)Lp*Lq@@ @@@"@@б@г&string8Lu9L{@@ @@@1@@г$unitELFL@@ @@@>@@@@@A@@@%@@D( @@B :@@@ @@KXLf@@] U@@@@@S`L\@@ @cLL@b= Prints a deprecation alert. op@@@@@@@E@-@g%alertf{|@б#defг9!t@@ @@@0@.@A@@б#useгL!t@@ @@@@@б$kindг &string@@ @@@$@@б@гl!t@@ @@@3@@б@г'&string@@ @@@B@@г0$unit@@ @@@O@@@@@R@@@%@@U( @@B7@@X@@W O@@@ @@`@@r j@@@@@h@@ @"@< Prints an arbitrary alert.  @@@@@@@F@1@|6 {1 Reporting errors} )@@@@@@0@#@AA(%errorgG#+0$+5@@8@@@A (@@@@@@@,++-+>@, F An [error] is a [report] which [report_kind] must be [Report_error]. 9??:?@@@@@@@@@QG@@Aг&reportC+8@@0A@@AAAAA@-'8@@@A.@@H@H@@@@@# @@@A "@@$!@7$#@%errorhXY@б#locг!tef@@ @@@0gffggggg@SMG@A@@б#subг $listxy@г 預#msg@@ @@@@@@@@@" @@б@г&string@@ @@@1@@г%error@@ @@@>@@@@@A@@? [)@@@  @@ H@@Z cR@@@ @@ P@@ @@@H@@@W&errorfi@б#locг!t@@ @@@ 0@r!@A@@б#subг~$list@г Z#msg@@ @@@@@@@@@" @@б@г'format4@А!a@ H@7@@г&Format)formatter !@@ @@@J@@г$unit./@@ @@@X@@г%error< =@@ @@@f@@@B8$ @@@nJC@@А!aAsOP@@@F@@x @@v `@@@ @@[ @@ @@@@@c@@ @f@@}I@@@0error_of_printerjq#r3@б#locг/!t~:;@@ @@@!0@!@A@@б#subг&$listHL@г#msgDG@@ @@@"@@@@@@$" @@б@б@гs)formatterPSP\@@ @@@%3@@б@А!a@2H@&>P`Pb@@г$$unitPfPj@@ @@@'M@@@@@(P@@@#@@)S& @@б@А!a YPoPq@@гà%errorPuPz@@ @@@*h@@@2@@+k@@@@@,nPR @@m W@@@- @@.v?@@ @@@/@@0~5@@ @@@J@!@@5error_of_printer_filek||@б@б@г)formatter||@@ @@@30@!@A@@б@А!a@3@@@@@@@8 @@@"@@A;%@@г$unit   7   ;@@ @@@BH@@@@@CK    @@@    @Ð ] Each compiler module which defines a custom type of exception which can surface as a user-visible error should register a "printer" for this exception using [register_error_of_exn]. The result of the printer is an [error] value containing a location, a message, and optionally sub-messages (each of them being located as well).   < <!!@@@@@@@L@@_,error_of_exnm!!!!@б@г#exn!!!!@@ @@@D0@xs,@A@@гj&option!!!!@з"Ok!!!!@@г蠐%error !! !!@@ @@@E$@@@@@1Already_displayed!!!!@A@@@@@@Р!@@@@GA@@@H:'!!(!!@@@:@@@JA7@@@G@@KDJ:@@@3!!=@@JM@?@@J%ErrornH?!!@!!@ @(@@@L@@AI!!J!!@I h Raising [Error e] signals an error [e]; the exception will be caught and the error will be printed. V""W"Q"m@@@@@@@nN@г%errorb!!@@0`__`````@x4@A@@@@r@@7Already_displayed_erroroIp"o"yq"o"@ @@@Au"o"o@t Raising [Already_displayed_error] signals an error which has already been printed. The exception will be caught, but nothing will be printed """#'@@@@@@@O@@@@0@$MG@A@,raise_errorfp#)#-#)#9@б#locгO!t#)#@#)#A@@ @@@O0@93@A@@б#subгF$list#)#N#)#R@г"#msg#)#J#)#M@@ @@@P@@@@@@R" @@б@г'format4#V#y#V#@А!a@bJ@S7#V#Y#V#[@@г&Format)formatter#V#]#V#m@@ @@@TJ@@гO$unit#V#o#V#s@@ @@@UX@@А!b@dJ@Vb#V#u#V#w@@@@6"@@@[l#V#XA@@А!a?q#V##V#@@@D@@\v @@tɠ^@@@] @@^}!#)#E @@Ѡ@@@_@@`)#)#;@@ @,#)#)@@CP@@@0report_exceptionq7##8##@б@г)formatterB##C##@@ @@@e0DCCDDDDD@@A@@б@г #exnS##T##@@ @@@f@@г$unit`##a##@@ @@@g@@@@@h!@@@'@@i$* @@@n##@m ) Reraise the exception if it is unknown. z##{##@@@@@@@Q@@7@5/A@@mF@2 @@}@iB@;@ @@C@.A@@[@C!@@@j@c<@$@@@I@B @@G@A@\@TNA@A@93A@  @ { Q@ J #@  @  |@ h A@  @  U@ A@@Z@F @@y@ @N@:@@k@A@*@#@}@@s,@@B@B@i@@@0@@A@ H************************************************************************A@@A@L@ H BMMBM@ H OCaml  C C@ H DD3@ H Xavier Leroy, projet Cristal, INRIA Rocquencourt E44E4@ H FF@ H Copyright 1996 Institut National de Recherche en Informatique et "G#G@ H en Automatique. (H)Hg@ H .Ihh/Ih@ H All rights reserved. This file is distributed under the terms of 4J5J@ H the GNU Lesser General Public License version 2.1, with the :K;KN@ H special exception on linking described in the file LICENSE. @LOOALO@ H FMGM@ H************************************************************************LNMN5@ * Source code locations (ranges of positions), used in parsetree. {b Warning:} this module is unstable and part of {{!Compiler_libs}compiler-libs}. R  * Note on the use of Lexing.position in this module. If [pos_fname = ""], then use [!input_name] instead. If [pos_lnum = -1], then [pos_bol = 0]. Use [pos_cnum] and re-parse the file to get the line and character numbers. Else all fields are correct. q B* An arbitrary value of type [t]; describes an empty ghost range. I 5* True for [Location.none], false any other location  7* Return an empty ghost range located in a given file. ՠ [* Set the file name and line number of the [lexbuf] to be the start of the named file.  ;* Get the location of the current token from the [lexbuf]. I o* [rhs_loc n] returns the location of the symbol at position [n], starting at 1, in the current parser rule. 3* file, line, char  1* {1 Input info}  This is used for reporting errors coming from the toplevel. When running a toplevel session (i.e. when [!input_name] is "//toplevel//"), [!input_phrase_buffer] should be [Some buf] where [buf] contains the last toplevel phrase. pP @ @qT  3@ "* {1 Toplevel-specific functions} k9* {1 Printing locations}  * rewrite absolute path to honor the BUILD_PATH_PREFIX_MAP variable (https://reproducible-builds.org/specs/build-path-prefix-map/) if it is set. Ǡ s* In -absname mode, return the absolute path for this filename. Otherwise, returns the filename unchanged. ] .* {1 Toplevel-specific location highlighting} z $* {1 Reporting errors and warnings}  .* {2 The type of reports and report printers} 1 The entry point SUSj@ * A printer for [report]s, defined using open-recursion. The goal is to make it easy to define new printers by re-using code from existing ones.  +* {2 Report printers used in the compiler}  s D* Detects the terminal capabilities and selects an adequate printer  ꠠ:* {2 Printing a [report]}  ܠ &* Display an error or warning report.  * Hook for redefining the printer of reports. The hook is a [unit -> report_printer] and not simply a [report_printer]: this is useful so that it can detect the type of the output (a file, a terminal, ...) and select a printer accordingly.  H ,* Original report printer for use in hooks.  9* {1 Reporting warnings}  0* {2 Converting a [Warnings.t] into a [report]}  x* [report_warning loc w] produces a report for the given warning [w], or [None] if the warning is not to be printed.  "* Hook for intercepting warnings.  * .* Original warning reporter for use in hooks.  ̠8* {2 Printing warnings}  ^* Prints a warning. This is simply the composition of [report_warning] and [print_report].  2 V* Same as [print_warning], but uses [!formatter_for_warnings] as output formatter. 㠠7* {1 Reporting alerts} ՠ .* {2 Converting an [Alert.t] into a [report]} Ǡ r* [report_alert loc w] produces a report for the given alert [w], or [None] if the alert is not to be printed. m * Hook for intercepting alerts.  ,* Original alert reporter for use in hooks. 6* {2 Printing alerts}  [* Prints an alert. This is simply the composition of [report_alert] and [print_report]. 4 T* Same as [print_alert], but uses [!formatter_for_warnings] as output formatter. 堠>* Prints a deprecation alert. g=* Prints an arbitrary alert. Ԡ7* {1 Reporting errors} Ơ G* An [error] is a [report] which [report_kind] must be [Report_error].  ;* {1 Automatically reporting errors for raised exceptions} o ^* Each compiler module which defines a custom type of exception which can surface as a user-visible error should register a "printer" for this exception using [register_error_of_exn]. The result of the printer is an [error] value containing a location, a message, and optionally sub-messages (each of them being located as well).  i* Raising [Error e] signals an error [e]; the exception will be caught and the error will be printed.  * Raising [Already_displayed_error] signals an error which has already been printed. The exception will be caught, but nothing will be printed j ** Reraise the exception if it is unknown. t@-./boot/ocamlc"-g)-nostdlib"-I$boot*-use-prims2runtime/primitives0-strict-sequence*-principal(-absname"-w>+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"-c */home/barsac/ci/builds/workspace/bootstrap - @0L0p.f0+**+++++@)@@8CamlinternalFormatBasics0cEXygc 7پI{YG&Stdlib0>,W:(.Stdlib__Buffer0'ON͋[h#ڗA.Stdlib__Either0 }rCT0J){9).Stdlib__Format0=z+.m׸,Stdlib__Lazy0'rruSZY.Stdlib__Lexing0zsc\ZoQ+Stdlib__Seq0yt\eǟ&Q,}-Stdlib__Uchar0 |K?bޣ ˠ0Ӷ.5S6V@0>gc 7پI{YGA}  .-@vu@@{z@@  @  @kj@PO@@@KJ@  @  @ @@ r q('<;@԰@   P OlkVU@@]`IH@&%21@@BRpo    @@@@hx@ J I@@    *)@&5  @@P@