Caml1999I037~RnMl֠%ShapeӠ#Uid }@!t ;@@0Compilation_unit&stringQ@@@l@@0typing/shape.mli{ F J{ F f@@A@$Item)comp_unit@@@@@k| g w| g @@/B@"id@@#intA@@@j | g !| g @@=C@$from8@@)Unit_info,intf_or_impl@@@i0| g 1| g @@MD@@@4| g k5| g @@QE@(Internal9@@=}  >}  @@ZF@&Predef:M@@@h@@K~  L~  @@hG@@@@@@@@@Oz 3 5@@@@k@@A@&reinit @$unitF@@@m@@@n@@o@c@  d@  @@M@@"mk ,current_unit&optionLN!t@@@p@@@q@@@r@@s@B  B  '@@N@@6of_compilation_unit_id @%Ident!t@@@t@@@u@@v@C ( *C ( S@@O@@,of_predef_id @!t@@@w+@@@x@@y@D T VD T u@@P@@@;V@@*find_first @@<@@@@@@@@@R@@@H@@@@@@@@W@TW@@.find_first_opt @@U@@@@@@@@@k@@@e@@@@@@@@@@@u@rX@@)find_last @@s@@@@@@@@@@@@@@@@@@@@@Y@@-find_last_opt @@@@@,@@@@@@@@@ݠ@@@@@@@@@@@@Z@@$iter @@@@@$unitF@@@@@@@@@ @@@@@@@@@[@@$fold @@@@@@#acc@@@@@@@@@@  @@@@@@@@\@@&filter @@@@@@@@@@@@@@@@@@@@@@@^@@*filter_map @@@@@A@@@@@@@@@@@@@@@@@@@@@_@@)partition @@@@@@@@@@@,@@@@3@@@렠@8@@@@@@@@@@:@7`@@%split @6@@@@H@@@@O@@@@@@@@Z@@@@@@@@@@\@Ya@@(is_empty @e@@@@@@@@@k@hb@@#mem @g@@@@y@@@ @@@@@@@@@|c@@%equal @@@@@@@@ @@@@@@@@@d@@'compare @@@@@@@@@@@@@@@@@e@@&subset @@@@ @@@@ H@@@ @@ @@ @@f@@'for_all @@@@@Y@@@@@@@@@b@@@@@@@@@g@@&exists @@@@@s@@@@@@@@@|@@@@@@@@@h@@'to_list @@@@V@@@@@@@@@@i@@+to_seq_from @@@@ @@@@!&Stdlib#Seq!t@@@"@@@#@@$@@%@ @k@@&to_seq @)@@@&#Seq!t&@@@'@@@(@@)@6@3l@@*to_rev_seq @?@@@*/#Seq!t<@@@+@@@,@@-@L@Im@@'add_seq @B#Seq!tO@@@.@@@/@b@@@0e@@@1@@2@@3@g@dn@@&of_seq @]#Seq!tj@@@4@@@5{@@@6@@7@}@zo@@&output @9+out_channel@@@8@@@@96@@@:@@;@@<@@M@@%print @P&Format)formatter@@@=@@@@>N@@@?@@@@@A@@N@@)to_string @@@@B&stringQ@@@C@@D@@O@@'of_list @$listK@@@E@@@F@@@G@@H@@P@@#map @@@@@I@@@J@@K@@@@L@@@M@@N@@O@@Q@@@@u@@@Ӡ#Map @#key ;@@@Ay!t@@@@@@@@@@T@A@!t ;!a@@A@A#Map$Make!t@@@I@B@@@@@@U@A@%empty  !a@@@@@&@E@@#add @>@@@@!a@@ @@@! @@@@@@@@@@B@F@@+add_to_list @@@@@!a@@8$listK@@@@@@C @@@@@@@@@@@@@i@&G@@&update @C@@@@@&optionL!a@@@@  @@@@@@m@@@q@@@@@@@@@@@OH@@)singleton @l@@@@!a@@@@@@@@@@dI@@&remove @@@@@!a@@@@@@@@@@@@@}J@@%merge @@@@@@W!a@@@@@b!b@@@@k!c@@@@@@@@@@@Ѡ@@@@נ@@@۠@@@@@@@@@@@K@@%union @@@@@@!a@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@&@L@@(cardinal @!a@@@@@@@@@@:@M@@(bindings @%!a@@@@@$@@@ @@@ @@@ @@ @X@N@@+min_binding @C!a@@@@ @>@@@@@@@@@q@.O@@/min_binding_opt @\!a@@@@ @[@@@@@@@@@@@@@LP@@+max_binding @z!a@@@@@u@@@@@@@@@@eQ@@/max_binding_opt @!a@@@@@@@@@@@@ @@@!@@"@@R@@&choose @!a@$@@@#@@@@%@@@&@@'@@S@@*choose_opt @ʠ!a@)@@@(w@@@@*@@@+@@@,@@-@@T@@$find @@@@.@!a@0@@@/@@1@@2@@U@@(find_opt @@@@3@!a@5@@@4 @@@6@@7@@8@,@V@@*find_first @@@@@9$boolE@@@:@@;@$!a@=@@@<@@@@>@@@?@@@@@A@R@W@@.find_first_opt @@.@@@B&@@@C@@D@H!a@F@@@E@G@@@G@@@H@@@I@@J@@K@{@8X@@)find_last @@W@@@LO@@@M@@N@q!a@P@@@O@l@@@Q@@@R@@S@@T@@\Y@@-find_last_opt @@{@@@Us@@@V@@W@!a@Y@@@XB@@@@Z@@@[@@@\@@]@@^@@Z@@$iter @@@@@_@!a@c$unitF@@@`@@a@@b@Ơ@@@d @@@e@@f@@g@@[@@$fold @@@@@h@!a@l@#acc@n@@i@@j@@k@@@@m@  @@o@@p@@q@ @\@@#map @@!a@s!b@u@@r@ @@@t @@@v@@w@@x@(@]@@$mapi @@@@@y@!a@|!b@~@@z@@{@$ @@@}( @@@@@@@@I@^@@&filter @@%@@@@!a@#@@@@@@@@E @@@I@@@@@@@@j@'_@@*filter_map @@F@@@@!a@!b@@@@@@@@@k@@@o@@@@@@@@@M`@@)partition @@l@@@@!a@j@@@@@@@@ @@@@@@@@@@@@@@@@@@@xa@@%split @@@@@!a@@@@@ @@@@b@@@@Ġ@@@@@@@@@@@b@@(is_empty @Р!a@@@@@@@@@@@c@@#mem @@@@@!a@@@@@@@@@@@@ @d@@%equal @@!a@@@@@@@@@@ @@@@@@@@@@@@@@@@@ 6@e@@'compare @@!a@@ @@@@@@@@/@@@@5@@@ @@@@@@@@@@ Z@ f@@'for_all @@6@@@@!a@4@@@@@@@@V @@@>@@@@@@@@ {@ 8g@@&exists @@W@@@@!a@U@@@@@@@@w @@@_@@@@@@@@ @ Yh@@'to_list @!a@@@@T@@@@۠@@@@@@@@@ @ wi@@&to_seq @!a@@@@&Stdlib#Seq!t@@@@ᠠ@@@@@@@@@ @ k@@*to_rev_seq @ɠ!a@@@@$#Seq!t@@@@砠@@@@@@@@@ @ l@@+to_seq_from @@@@@!a@@@@J#Seq!t@@@@@@@@@@@@@@@ %@ m@@'add_seq @c#Seq!t@ @@@@!a@@@@@@@' @@@+@@@@@@@@ L@ n@@&of_seq @#Seq!t@1@@@@!a@@@@@@L@@@@@@ m@ *o@@'of_list @@O@@@@!a@@@@@@j@@@@@@ @ V@@.disjoint_union "eq&optionL@!a@@$boolE@@@@@@@ @@@ %print@ h&Format)formatter@@@ @ c@@@ @@ @@@@@@)@@@@/@@@3@@@@@@@@@@@@ @ W@@+union_right @!a@@@@@Ơ @@@ʠ@@@@@@@@ @ X@@*union_left @֠!a@ @@@@ @@@@@@!@@"@@#@ @ Y@@+union_merge @@!a@(@@@$@@%@ @@@&@@@@'@@@)@@*@@+@@,@ %@ "Z@@&rename @@@@-@@@.@@@@/ @@@0@@1@@2@ <@ 9[@@(map_keys @@@@@3@@@4@@5@1!a@7@@@69@@@8@@9@@:@ Z@ W\@@$keys @E!a@;@@@< !#Set$Make !t@@@=@@>@ t@ q]@@$data @_!a@@@@@? @@@A@@B@ @ ^@@&of_set @@e@@@C!a@F@@D@ S#Set$Make "!t@@@E@@@G@@H@@I@ @ _@@7transpose_keys_and_data @@@@J@@@K@@@L@@@M@@N@ @ `@@;transpose_keys_and_data_set @@@@O@@@P #Set$Make X!t@@@Q@@@R@@S@ @ a@@%print @@ &Format)formatter@@@T@!a@Y @@@U@@V@@W@ &Format)formatter@@@X@@@@Z @@@[@@\@@]@@^@ @ b@@@@  v@@@Ӡ#Tbl @#key ;@@@A !t@@@@@@@ @@@ h@A@!t ;!a@@A@A 'Hashtbl$Make !t@@@O@B@@@ 9@@@ 6i@A@&create @ @@@&!a@@@@@@@ N@ 3e@@%clear @!a@@@@$unitF@@@@@@ d@ If@@%reset @'!a@@@@@@@ @@!@ x@ ]g@@$copy @;!a@#@@@"C@@@$@@%@ @ qh@@#add @O!a@(@@@&@@@@'@ F@@@)@@*@@+@@,@ @ i@@&remove @k!a@-@@@.@@@@/_@@@0@@1@@2@ @ j@@$find @!a@5@@@3@5@@@4 @@6@@7@ @ k@@(find_opt @!a@:@@@8@J@@@9&optionL@@@;@@<@@=@ @ l@@(find_all @!a@@@@@>@f@@@?$listK@@@A@@B@@C@ @ m@@'replace @Ѡ!a@F@@@D@@@@E@ @@@G@@H@@I@@J@ )@ n@@#mem @!a@K@@@L@@@@M )@@@N@@O@@P@ B@ 'o@@$iter !@@@@@Q@!a@U@@@R@@S@@T@ @@@V@@@W@@X@@Y@ c@ Hp@@2filter_map_inplace "@@@@@Z@!a@^@@@[@@\@@]@8@@@_#@@@`@@a@@b@ @ jq@@$fold #@@@@@c@!a@g@#acc@i@@d@@e@@f@[@@@h@  @@j@@k@@l@ @ r@@&length $@i!a@m@@@n @@@o@@p@ @ s@@%stats %@}!a@q@@@r *statistics@@@s@@t@ @ t@@&to_seq &@!a@v@@@u&Stdlib#Seq!t@Q@@@w@@@x@@@y@@z@ @ u@@+to_seq_keys '@@@{@@@|"#Seq!tl@@@}@@@~@@@@ v@@-to_seq_values (@Ѡ!a@@@@=#Seq!t @@@@@@&@ w@@'add_seq )@!a@@@@@W#Seq!t@@@@@@@@@@@@@@@@@@M@2x@@+replace_seq *@!a@@@@@~#Seq!t@@@@@@@@@@@@@@@@@@t@Yy@@&of_seq +@#Seq!t@@@@@!a@@@@@@L@@@@@@@zz@@'to_list ,@X!a@@@@ @.!t@@@@@@@@@@@@@j@@'of_list -@ @F!t@@@@!a@@@@@@@@@@@@@k@@&to_map .@!a@@@@#Map$Makek!t@@@@@@@l@@&of_map /@#Map$Make~!t!a@@@@ @@@@@@ @m@@'memoize 0@Π!a@@@@@@@@@ @@@@@@@@@@@@@'@$n@@#map 1@!a@@@@@@ !b@@@@@@@@@@@C@@o@@@@DAw@@@@@$y " "%J  @AT@@@Ӡ2Sig_component_kind ~@!t 2;@@%Value`@@9N"&:N"-@@VV@$Typea@@BO.2CO.8@@_W@+Constructorb@@KP9=LP9J@@hX@%Labelc@@TQKOUQKV@@qY@&Moduled@@]RW[^RWc@@zZ@+Module_typee@@fSdhgSdu@@[@5Extension_constructorf@@oTvzpTv@@\@%Classg@@xUyU@@]@*Class_typeh@@VV@@^@@@A@@@@@M@@A@U@A@)to_string 3@b@@@ @@@@@@XX@@_@@3can_appear_in_types 4@@@@@@@@@@[[@@@`@@@@L  \AD@a@@@Ӡ$Item @!t 5;@@@A@@@@ࠠ@!t@@@@@@@@@cPRcPx@@@@b@A@$name 6@#@@@@@@@@@dy{dy@@c@@$kind 7@@@@'!t@@@@@@ee@@d@@$make 8@@@@@=!t@@@1@@@@@@@@ gg@@*e@@%value 9@!t@@@E@@@@@@!i"i@@>f@@%type_ :@!t@@@Y@@@@@@5j 6j!@@Rg@@&constr ;@!t@@@m@@@@@@Ik"$Jk"=@@fh@@%label <@!t@@@@@@@@@]l>@^l>X@@zi@@'module_ =@!t@@@@@@@@@qmY[rmYu@@j@@+module_type >@!t@@@@@@@@@nvxnv@@k@@5extension_constructor ?@!t@@@@@@@@@oo@@l@@&class_ @@!t@@@@@@@@@pp@@m@@*class_type A@,!t@@@@@@@@@qq@@n@@%print B@&Stdlib&Format)formatter@@@@@@@ @@@ @@ @@ @ss*@@o@@Ӡ#Map C@#key D;@@@A@@@@@@@u,Fu,R@@@@p@A@!t E;!a@@A@A@I@B@@@'map.mliI V ZI V e@@@@+Stdlib__MapD@A@%empty F!a@@@@@L  L  @@E@@#add G@;@@@@!a@@  @@@$ @@@@@@@@@@3O  4O  @@2F@@+add_to_list H@@@@@!a@@>$listK@@@@@@I @@@@@@@@@@@@@]X  ^X  @@\G@@&update I@I@@@@@&optionL!a@@@@  @@@@@@v@@@z@@@@@@@@@@^^@@H@@)singleton J@u@@@@!a@@@@@@@@@jW[jW{@@I@@&remove K@@@@@!a@@@@@@@@@@@@oo@@J@@%merge L@@@@@@`!a@@@@@k!b@@@@t!c@@@@@@@@@@@@@@@@@@@@@@@@@@@@vY]x@@K@@%union M@@@@@@!a@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@)fj*f@@(L@@(cardinal N@)!a@@@@#intA@@@@@@BC@@AM@@(bindings O@B!a@@@@ @>@@@ᠠ@@@@@@@@@c8<d8a@@bN@@+min_binding P@c!a@@@@@[@@@砠@@@@@@bfb@@~O@@/min_binding_opt Q@!a@@@@#@{@@@젠@@@@@@@@@JNJ|@@P@@+max_binding R@!a@@@@@@@@@@@@@@484[@@Q@@/max_binding_opt S@!a@@@@`@@@@@@@@@@@@@ @@R@@&choose T@ݠ!a@@@@@@@@@@@@@@@@S@@*choose_opt U@!a@@@@@@@@@@@@@@@@@@@T@@$find V@@@@@!a@@@@@@ @@ @23@@1U@@(find_opt W@@@@ @7!a@ @@@ ۠ @@@@@@@@OIMPIs@@NV@@*find_first X@@=@@@$boolE@@@@@@\!a@@@@@T@@@@@@@@@@@x  y  D@@wW@@.find_first_opt Y@@f@@@)@@@@@@!a@@@@'@@@@@@@ @@@!@@"@@#@"*"."*"l@@X@@)find_last Z@@@@@$U@@@%@@&@!a@(@@@'@@@@)@@@*@@+@@,@#_#c#_#@@Y@@-find_last_opt [@@@@@-|@@@.@@/@֠!a@1@@@0z@@@@2@@@3@@@4@@5@@6@$y$}$y$@@Z@@$iter \@@@@@7@!a@;$unitF@@@8@@9@@:@ @@@< @@@=@@>@@?@%%%& @@[@@$fold ]@@ @@@@@!a@D@#acc@F@@A@@B@@C@0@@@E@  @@G@@H@@I@A'%')B'3'l@@@\@@#map ^@@!a@K!b@M@@J@M @@@LQ @@@N@@O@@P@`(e(ia(e(@@_]@@$mapi _@@N@@@Q@!a@T!b@V@@R@@S@q @@@Uu @@@W@@X@@Y@))))@@^@@&filter `@@r@@@Z@!a@_;@@@[@@\@@]@ @@@^@@@`@@a@@b@****@@_@@*filter_map a@@@@@c@!a@gO!b@i@@@d@@e@@f@@@@h @@@j@@k@@l@ ,, ,,?@@`@@)partition b@@@@@m@!a@s@@@n@@o@@p@ @@@q@@@@t@@@@r@@u@@v@@w@.../%@@a@@%split c@@@@x@!a@|@@@y@ @@@}@@@@{@@@@z@@~@@@@@,$0'0+-$0'0\@@+b@@(is_empty d@,!a@@@@@@@@@@C022!D022;@@Bc@@#mem e@/@@@@H!a@@@@@@@@@@@@_32l2p`32l2@@^d@@%equal f@@!a@@@@@@@@@@m@@@@s@@@#@@@@@@@@@@722723-@@e@@'compare g@@!a@@]@@@@@@@@@@@@@@@m@@@@@@@@@@=4(4,=4(4a@@f@@'for_all h@@@@@@!a@d@@@@@@@@ @@@n@@@@@@@@A45A450@@g@@&exists i@@@@@@!a@@@@@@@@@ @@@@@@@@@@@F55F55@@h@@'to_list j@!a@@@@@@@@@@@@@@@@@M6~6M6~6@@i@@'of_list k@ՠ@ @@@@!a@@@@@@(@@@@@@7Q668Q67@@6j@@&to_seq l@7!a@@@@&Stdlib#Seq!t@9@@@@@@@@@@@@^W77_W77@@]k@@*to_rev_seq m@^!a@@@@'#Seq!t@]@@@Š@@@@@@@@@[8A8E[8A8n@@l@@+to_seq_from n@n@@@@!a@@@@P#Seq!t@@@@̠@@@@@@@@@@@_88_88@@m@@'add_seq o@l#Seq!t@@@@Ѡ@!a@@@@@@@  @@@Ơ@@@@@@@@d99d99@@n@@&of_seq p@#Seq!t@@@@٠@!a@@@@@@@@@@@@h::h::>@@o@@@@u,.@q@@@@@b>>vSV@!r@@@#var ;@@@A!t@@@@@@@xXXxXj@@@@2s@A@!t ;@@#uid@@A!t@@@@@@.ykv/yk@@Kw@$desc@@$desc @@@<yk=yk@@Yx@,approximated@@@@@HykIyk@@ey@@@A@@@@@LykkMyk@@@@it@A@;@@#VarS@@@@@^{_{@@{z@#Abs@@@T@@@@@p|q|@@{@#App@@@@@@@@}}@@|@&Struct#Map!t'@@@@@@@@~~@@}@%Alias5@@@@@@@~@$Leaf@@@@@$ProjK@@@/!t@@@@@1@@@@)Comp_unit@@@@@242I@@A@%Error@@@@@JLJ]@@B@@@A@@@@@z@@@@u@B@%print @&Format)formatter@@@@@@@@@@@@@@@___@@C@@2strip_head_aliases @@@@@@@@@@  @@(D@@9for_unnamed_functor_param @@@@@@4E@@)fresh_var $name.@@@@@@@!t@@@@@@@@@@@@@@@@@@@A@@]F@@#var @$!t@@@@!t@@@@@@@@@@@[\:@@xG@@#abs #uidDD!t@@@@@@@@@@@ @@@@@@@@@@@@@~;;;`@@H@@#app #uidgg!t@@@@@@@*@@@#arg1@@@4@@@@@@@@@@aaa@@I@@#str #uid!t@@@@@@@0#Map!tV@@@@@@Z@@@@@@@@@@J@@%alias #uid!t@@@@@@@u@@@x@@@@@@@@@@K@@$proj #uidР!t@@@@@@@@@@@x!t@@@@@@@@@@@@@  @@)L@@$leaf @!t@@@@@@@@@ @@<M@@-decompose_abs @@@@@@@@栠@@@@@@@@@@@@>?>@@[N@@3for_persistent_unit @O@@@@@@@@@P@@Q@e@@mO@@/leaf_for_unpack @@@@\ff]f}@@yP@@Ӡ#Map @%shape q;@@@A@@@ @@@@pq@@@@Q@A@!t r;@@@A#Map!t@@@@@@@@@@@@@@R@@@%empty s@@@@@@S@@#add t@@@@@!t@@@@E@@@@@@@@@@@@@@@T@@)add_value u@-@@@@5!t@@@@!t@@@?@@@@@@@@@@%@@U@@.add_value_proj v@M@@@@U!t@@@ @?@@@!]@@@"@@#@@$@@%@&(&W@@ V@@(add_type w@k@@@&@s!t@@@'@]@@@({@@@)@@*@@+@@,@ Y[Y@@*W@@-add_type_proj x@@@@-@!t@@@.@{@@@/@@@0@@1@@2@@3@+,@@HX@@*add_constr y@@@@4@!t@@@5@@@@6@@@7@@8@@9@@:@IJ@@fY@@/add_constr_proj z@@@@;@!t@@@<@@@@=@@@>@@?@@@@@A@gh@@Z@@)add_label {@@@@B@!t@@@C@X!t@@@D@@@E@@F@@G@@H@E@@[@@.add_label_proj |@@@@I@ !t@@@J@@@@K@@@L@@M@@N@@O@FHFw@@\@@*add_module }@!@@@P@)!t@@@Q@@@@R1@@@S@@T@@U@@V@y{y@@]@@/add_module_proj ~@?@@@W@G!t@@@X@1@@@YO@@@Z@@[@@\@@]@@@^@@/add_module_type @]@@@^@e!t@@@_@!t@@@`o@@@a@@b@@c@@d@ @@_@@4add_module_type_proj @}@@@e@!t@@@f@o@@@g@@@h@@i@@j@@k@ E@@<`@@+add_extcons @@@@l@!t@@@m@@@@n@@@o@@p@@q@@r@=GI>Gu@@Za@@0add_extcons_proj @@@@s@!t@@@t@@@@u@@@v@@w@@x@@y@[vx\v@@xb@@)add_class @@@@z@!t@@@{@L!t@@@|@@@}@@~@@@@@{|@@c@@.add_class_proj @@@@@!t@@@@@@@@@@@@@@@@@ @@d@@.add_class_type @@@@@!t@@@@!t@@@'@@@@@@@@@@   <@@e@@3add_class_type_proj @5@@@@=!t@@@@'@@@E@@@@@@@@@@=?=s@@f@@@@tw@g@@@)dummy_mod x@@@@yyy@@h@@'of_path *find_shape@ .!t@@@@q!t@@@@@@@@@@)namespace B!t@@@@$Path!t@@@@@@@@@@@@@ @@9i@@/set_uid_if_none @@@@@!t@@@@@@@@@@@453@@Qj@@@&U9%Shape0oNՄBH)Unit_info0ڀh%(-Stdlib__Uchar056uf4[_+Stdlib__Set0\$;7 +Stdlib__Seq0nwzG&amg+Stdlib__Map0L5xE|O0~,J-/Stdlib__Hashtbl0ѱN][/!.Stdlib__Format0ܚ#G7m|.Stdlib__Either0Vy`u~c à.Stdlib__Domain0:M;׉<O$Ġ.Stdlib__Buffer08APF< t.&Stdlib0Lku]8_٠$Path0Y2kf֯J._Ϡ,Identifiable0 {d\FX'`%Ident0">WA+9*X*Format_doc0]mWϓ:Mݠ8CamlinternalFormatBasics0%FU(Q/Tu@@@