Caml1999I037Š/Signature_group(sig_item;@@#src@@%Types.signature_item@@@:typing/signature_group.mliaosb@@B@+post_ghosts@@$listK.signature_item@@@@@@cd@@-C@@@A@@@@@_[[e @@@@1@@A@'flatten@:@@@@@3)signature@@@@@@1hAA2hAi@@HD@@.core_rec_group;@@'Not_rec@@@@@DlEl@@[F@)Rec_groupE+@@@@@@@@VmWm@@mG@@@A@@@@@Zk@@@@pE@A@)rec_items@2@@@@@aG@@@@@@@@@rp((sp(V@@H@@)rec_group;@@*pre_ghosts@@w.signature_item@@@@@@ưv  v  D@@J@%group@@-@@@İv  Ev  Y@@K@@@A@@@@@u  v  [@@@@I@A@$next@)signature@@@@@&optionL@B@@@ʠ@)signature@@@@@@@@@@@} - -} - n@@L@@#seq@)signature@@@@@&Stdlib#Seq!t*@@@@@@@@@~ o o~ o @@M@@$iter@@?@@@@@$unitF@@@@@@@@ )signature@@@@@@@@@@@@@ @  @  @@$N@@$fold@@#acc@@@@o@@@@@ @@@@@@@@@@9)signature@@@@@@@@@@@@7A  8A  @@NO@@.in_place_patch;@@&ghosts@@M)signature@@@KE o qLE o @@bQ@*replace_by@@_.signature_item@@@@@@^F  _F  @@uR@@@A@@@@@bD W WcH  @@@@yP@A@0replace_in_place@&ghosts})signature@@@@@@.signature_item@@@@@ؠ@!a@@Y@@@@@@@@@@@@@@@)signature@@@@@@@)signature@@@@@@@@@@@@@P  S h @@S@@@:Ϡ/Signature_group0,Ŏ\.9͠(Warnings0Ef{&)Unit_info0'T Χ@aR%Types0"|Vȷ`X .Type_immediacy00$ jbv\"k&-Stdlib__Uchar0=H^V9>ɠ+Stdlib__Sys0b'8=OIn+Stdlib__Set0ܔ@Z8XWaa2+Stdlib__Seq0?72#[O+Stdlib__Map0*4ɇ2.Stdlib__Domain0'Ϳo\0m.K.Stdlib__Buffer0,I[?z&Stdlib0t0VoS%{<F:%Shape0 M``ll)Primitive0dU=\I/}$Path0k.tbGmᠠ)Parsetree0v o[pY Y+Outcometree0BuG^)= 9c )Longident0wP q;ɡ(Location0nBɊOn?7~ؠ,Identifiable0]/*N %Ident0>ЃzV)j⠠*Format_doc0uy@GmWUࠠ0CamlinternalLazy0zY# #4#-8CamlinternalFormatBasics0|.e1R$|o(Asttypes0eT$BbRM dc@@@Caml1999T037? 9($C/Signature_group*ocaml.text&_none_@@A  Iterate on signature by syntactic group of items Classes, class types and private row types adds ghost components to the signature where they are defined. When editing or printing a signature it is therefore important to identify those ghost components. This module provides type grouping together ghost components with the corresponding core item (or recursive group) and the corresponding iterators. :typing/signature_group.mliP77[@@@@@@3@@@@@@#intA;@@#intA@@@@@;@A@$charB;@@$charA@@@@@A@A@&stringQ;@@&stringA@@@@@G@@@%bytesC;@@%bytesA@@@@@M@@@%floatD;@@%floatA@@@@@S@@@$boolE;@@%falsec@@]@$trued@@c@@@A@@@@@d@A@$unitF;@@"()e@@n@@@A@@@@@o@A@ #exnG;@@@A@@@@@s@@@#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@@@@@@@@[@@A!=ocaml.warn_on_literal_pattern%@&@0Division_by_zero]#@@@A+ . .@+End_of_file\#$@@@A366@'FailureY#,@'@@A<??@0Invalid_argumentX#5@0@@AE$H#H@-Match_failureV#>@@=@9@;@@a@@AV5Y4Y@)Not_foundZ#O@@@A^=a<a@-Out_of_memoryW#W@@@AfEiDi@.Stack_overflow^#_@@@AnMqLq@.Sys_blocked_io_#g@@@AvUyTy@)Sys_error[#o@j@@A^]@:Undefined_recursive_modulea#x@@w@s@u@@h@@Aon@:Continuation_already_takenb#@@@Awv@&Stdlib@AA+(sig_itemA_[`_[h@@;@@#src@@%Types.signature_item@@@ baosb@)ocaml.doc4 the syntactic item aoao@@@@@@@B@+post_ghosts@@;$.signature_item@@@ e@@@ gcd@# ' ghost classes types are post-declared dd@@@@@@@C@@@A@@@@@_[[e @5 e Classes and class types generate ghosts signature items, we group them together before printing ]^;Z@@@@@@@@@@@@#TTKaov@:@@Ш@гW%Typesaoxao}@\ao~ao@@@f3@t;@@@A@@@@@-*@@@A @@m@@ c@eb a`@``@@@`@`@#\\Pc@A@@Ш@г_$list(c)c@гd%Types3c4c@k7c8c@@@s1@@@x2 @@{@@ h5@pNnm@mm@@@m@m@@A@iYgf@ff@@@f@f@@Qts@'flatten]hAE^hAL@б@г͠(sig_itemhhANihAV@@ @@@ v3jiijjjjj@i@A@@г)signature%Types{hAZ|hA_@ hA`hAi@@@@@@ w @@@ @@ x@@ y# @@@hAA@ 0 [flatten sig_item] is [x.src :: x.post_ghosts] g  g @@@@@@@@D@@@@@@@@@<A+.core_rec_groupBkk@@;@@'Not_rec(@@@ z@@ll@@F@)Rec_groupB:@@@ {@@@ }@@mm@@G@@@A@@@@@k@+ * A group of mutually recursive definition jkkjk@@@@@@@@@E@@#33ll@,@г5(sig_iteml6@@<3@pM;@@@A@@@@@&$@@@A<@@@@>@#::mm@.@г<$list m8@г@(sig_itemmm@@H@@@MC@@@@E@@A@Aj(@?@??@@@?@?@@3      @*@AMP@)rec_items-p(,.p(5@б@г.core_rec_group8p(79p(E@@ @@@ 3:99:::::@E@A@@г$listGp(RHp(V@г(sig_itemQp(IRp(Q@@ @@@ @@@@@@  @@@&@@  @@ #)@@@cp((@ 9 [rec_items group] is the list of sig_items in the group poqo'@@@@@@@H@@,@@@@@@@BA+)rec_groupCu  u  @@;@@*pre_ghosts@@.signature_item@@@ @@@ v  v  D@@J@%group@@@@@ v  Ev  Y@@K@@@A@@@@@u  v  [@ Private #row types are manifested as a sequence of definitions preceding a recursive group, we collect them and separate them from the syntactic recursive group. rXXt @@@@@@@@@I@@#22&v  (@%@@Ш@г5$listv  ?v  C@г:%Typesv  *v  /@Av  0v  >@@@I3@\;@@@A@@@@@74@@&@A @@@S@@V@@  @K@#GGBv  J@A@@Ш@гJ.core_rec_groupv  KK@@QL@@T@@ @P@@A@LIJI@II@@@I@I@@3@$@AXW@$next } - 1 } - 5@б@гm)signature%Types} - 7} - <@ } - = } - F@@@@@@ 3"!!"""""@H@A @@г&option/} - h0} - n@В@г)rec_group=} - K>} - T@@ @@@ @@@г)signature%TypesP} - WQ} - \@ T} - ]U} - f@@@@@@ 5 @@@@ @ @@ <% @@@: @@@ Ag} - J8@@@J@@  @@ GR=@@@o} - -@@ The sequence [seq signature] iterates over [signature] {!rec_group} by {!rec_group}. The second element of the tuple in the {!full_seq} case is the not-yet traversed part of the signature. |x ] ]}| * ,@@@@@@@L@@P@@@@@@@f#seqʠ~ o s~ o v@б@г)signature%Types~ o x~ o }@ ~ o ~~ o @@@@@@ 3@A@A @@г$#Seq!t~ o ~ o @ ~ o ~ o @@гA)rec_group~ o ~ o @@ @@@("@@@ @@@*' @@@/@@+ @@,,7@@@~ o o@@M@@@@2$iterˠ@  @  @б@б@гk)rec_group@  @  @@ @@@-3@Mk!@A@@г$unit@  @  @@ @@@.@@@@@/@@0 @@б@гl)signature%Types@  @  @ @  @  @@@@@@1, @@гР$unit,@  -@  @@ @@@29@@@@@3@@4> @@@3@@5 @@6C<@  @@@?@  @@WN@@@@J$fold̠JA  KA  @б@б@А#acc@ED@73UTTUUUUU@ax@A[A  \A  @@б@гޠ)rec_groupfA  gA  @@ @@@8@@А#accpA  qA  @@@@@9#@@:@@@(@@; @@<#! @@б@А#acc.)A  A  @@б@г)signature%TypesA  A  @ A  A  @@@@@@=C @@А#accLGA  A  @@@@@>S@@?N@@@X@@@ @@AS* @@@9@@B @@CXA  @@@A  @@O@@@@_A+.in_place_patchDD W \D W j@@;@@&ghosts@@%)signature@@@FE o qE o @#= updated list of ghost items E o E o @@@@@@@Q@*replace_by@@?E.signature_item@@@I@@@KF  F  @D # replacement for the selected item G  G  @@@@@@@R@@@A@@@@@D W WH  @V 2 Describe how to amend one element of a signature C  C  V@@@@@@@@@)P@@#PPIE o w@:@@Ш@гS%Types#E o y$E o ~@Z'E o (E o @@@b3'&&'''''@{q;@@@A@@@@@.+@@@A @@j@@G@dBba@aa@@@a@a@#]]QAF  @B@@Ш@г`&optionJF  KF  @гe%TypesUF  VF  @lYF  ZF  @@@t2@@@y3 @@|@@L6@qpon@nn@@@n@n@@A@j{hg@gg@@@g@g@@3srrsssss@K@Avu@0replace_in_placeРP  P  @б@б&ghostsг)signature%TypesQ  Q  @ Q  Q  )@@@@@@`3@s@A @@б@г.signature_item%TypesQ  -Q  2@ Q  3Q  A@@@@@@a @@г&optionR B _R B e@В@А!a@uE@b1R B JR B L@@@г.in_place_patchR B OR B ]@@ @@@cB@@@@@ @@dI @@@/ @@@fNR B I-@@@=@@g @@hTE2@@n\@@i @@jYQ  8@@б@гW)signature%TypesS h mS h r@  S h s S h |@@@@@@kr @@гk&optionS h S h @В@А!aX"S h #S h @@@г)signature%Types1S h 2S h @ 5S h 6S h @@@@@@l @@@@w@ @@m! @@@3 @@@oHS h 1@@@A@@p @@qI6@@@`@@r @@sSQ  <@@@VP  ?@ [!replace_in_place patch sg] replaces the first element of the signature for which [patch ~ghosts component] returns [Some (value,patch)]. The [ghosts] list is the current prefix of ghost components associated to [component] cJ  dO  @@@@@@@|S@@O@w@@@@@@@A@@A@Q@A@v@@E@>@A@ 4@@3@6@A@ H************************************************************************A@@A@L@ H BMMBM@ H OCaml CC@ H DD3@ H Florian Angeletti, projet Cambium, Inria Paris E44E4@ H FF@ H Copyright 2021 Institut National de Recherche en Informatique et GG@ H en Automatique. HHg@ H IhhIh@ H All rights reserved. This file is distributed under the terms of JJ@ H the GNU Lesser General Public License version 2.1, with the KKN@ H special exception on linking described in the file LICENSE. LOOLO@ H MM@ H************************************************************************NN5@ * Iterate on signature by syntactic group of items Classes, class types and private row types adds ghost components to the signature where they are defined. When editing or printing a signature it is therefore important to identify those ghost components. This module provides type grouping together ghost components with the corresponding core item (or recursive group) and the corresponding iterators. ⠠ f* Classes and class types generate ghosts signature items, we group them together before printing 5* the syntactic item , (* ghost classes types are post-declared  1* [flatten sig_item] is [x.src :: x.post_ghosts] T +* A group of mutually recursive definition  :* [rec_items group] is the list of sig_items in the group  * Private #row types are manifested as a sequence of definitions preceding a recursive group, we collect them and separate them from the syntactic recursive group. = * The sequence [seq signature] iterates over [signature] {!rec_group} by {!rec_group}. The second element of the tuple in the {!full_seq} case is the not-yet traversed part of the signature. ~ 3* Describe how to amend one element of a signature >* updated list of ghost items # $* replacement for the selected item  * [!replace_in_place patch sg] replaces the first element of the signature for which [patch ~ghosts component] returns [Some (value,patch)]. The [ghosts] list is the current prefix of ghost components associated to [component] @-./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"-I&typing"-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@A 9/builds/workspace/main/flambda/false/label/ocaml-linux-32 >10/.-,+*)('&%$#"! @@0>@J$//^C3[ZZ[[[[[@Y@@(Asttypes0eT$BbRM dc8CamlinternalFormatBasics0|.e1R$|o0CamlinternalLazy0zY# #4#-*Format_doc0uy@GmWUࠠ%Ident0>ЃzV)j⠠,Identifiable0]/*N (Location0nBɊOn?7~ؠ)Longident0wP q;ɡ+Outcometree0BuG^)= 9c )Parsetree0v o[pY Y$Path0k.tbGmᠠ)Primitive0dU=\I/}%Shape0 M``ll0,Ŏ\.9͠&Stdlib0t0VoS%{<F:.Stdlib__Buffer0,I[?z.Stdlib__Domain0'Ϳo\0m.K.Stdlib__Either0HD ?|>.Stdlib__Format00FClW/Stdlib__Hashtbl0(L%bԠ,Stdlib__Lazy0$1mlࠠ.Stdlib__Lexing0^m|e+Stdlib__Map0*4ɇ2ɠ.Type_immediacy00$ jbv\"k&0"|Vȷ`X )Unit_info0'T Χ@aR(Warnings0Ef{&@0,Ŏ\.9ASC@@<l@@'v@G@ǐ'@"]@@ ΰQs@@sS@@4[bӰo3@>@K#@@P@@