Caml1999I037o(m%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@@,is_singleton @t@@@@@@@@@z@wc@@#mem @v@@@@@@@@@@@@@@@@d@@%equal @@@@@@@@/@@@@@@@@@e@@'compare @@@@@@@@@@@@@@@@@f@@&subset @@@@ @@@@ W@@@ @@ @@ @@g@@'for_all @@@@@h@@@@@@@@@q@@@@@@@@@h@@&exists @@@@@@@@@@@@@@@@@@@@@@@i@@'to_list @@@@e@@@@@@@@@@j@@+to_seq_from @ @@@ @@@@!&Stdlib#Seq!t@@@"@@@#@@$@@%@/@,l@@&to_seq @8@@@&#Seq!t5@@@'@@@(@@)@E@Bm@@*to_rev_seq @N@@@*/#Seq!tK@@@+@@@,@@-@[@Xn@@'add_seq @B#Seq!t^@@@.@@@/@q@@@0t@@@1@@2@@3@v@so@@&of_seq @]#Seq!ty@@@4@@@5@@@6@@7@@p@@&output @H+out_channel@@@8@@@@9E@@@:@@;@@<@@M@@%print @_&Format)formatter@@@=@@@@>]@@@?@@@@@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 ;@@@A!t@@@@@@@ @@@ T@A@!t ;!a@@A@A#Map$Make!t@@@I@B@@@&@@@#U@A@%empty  !a@@@@@5@E@@#add @>@@@@!a@@ @@@! @@@@@@@@@@Q@F@@+add_to_list @@@@@!a@@8$listK@@@@@@C @@@@@@@@@@@@@x@5G@@&update @C@@@@@&optionL!a@@@@  @@@@@@m@@@q@@@@@@@@@@@^H@@)singleton @l@@@@!a@@@@@@@@@@sI@@&remove @@@@@!a@@@@@@@@@@@@@J@@%merge @@@@@@W!a@@@@@b!b@@@@k!c@@@@@@@@@@@Ѡ@@@@נ@@@۠@@@@@@@@@@ @K@@%union @@@@@@!a@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@5@L@@(cardinal @!a@@@@@@@@@@I@M@@(bindings @%!a@@@@@$@@@@@@@@@@@@g@$N@@+min_binding @C!a@@@@@>@@@@@@ @@ @@=O@@/min_binding_opt @\!a@ @@@  @[@@@ @@@@@@@@@@[P@@+max_binding @z!a@@@@@u@@@@@@@@@@tQ@@/max_binding_opt @!a@@@@@@@@@@@@@@@@@@@R@@&choose @!a@@@@@@@@@@@@@ @@S@@*choose_opt @ʠ!a@"@@@!w@@@@#@@@$@@@%@@&@ @T@@$find @@@@'@!a@)@@@(@@*@@+@!@U@@(find_opt @@@@,@!a@.@@@- @@@/@@0@@1@;@V@@*find_first @@@@@2$boolE@@@3@@4@$!a@6@@@5@@@@7@@@8@@9@@:@a@W@@.find_first_opt @@.@@@;&@@@<@@=@H!a@?@@@>@G@@@@@@@A@@@B@@C@@D@@GX@@)find_last @@W@@@EO@@@F@@G@q!a@I@@@H@l@@@J@@@K@@L@@M@@kY@@-find_last_opt @@{@@@Ns@@@O@@P@!a@R@@@QB@@@@S@@@T@@@U@@V@@W@@Z@@$iter @@@@@X@!a@\$unitF@@@Y@@Z@@[@Ơ@@@] @@@^@@_@@`@@[@@$fold @@@@@a@!a@e@#acc@g@@b@@c@@d@@@@f@  @@h@@i@@j@@\@@#map @@!a@l!b@n@@k@ @@@m @@@o@@p@@q@7@]@@$mapi @@@@@r@!a@u!b@w@@s@@t@$ @@@v( @@@x@@y@@z@X@^@@&filter @@%@@@{@!a@#@@@|@@}@@~@E @@@I@@@@@@@@y@6_@@*filter_map @@F@@@@!a@!b@@@@@@@@@k@@@o@@@@@@@@@\`@@)partition @@l@@@@!a@j@@@@@@@@ @@@@@@@@@@@@@@@@@@@a@@%split @@@@@!a@@@@@ @@@@b@@@@Ġ@@@@@@@@@@@b@@(is_empty @Р!a@@@@@@@@@@ @c@@,is_singleton @!a@@@@@@@@@@ @d@@#mem @@@@@!a@@@@@@@@@@@@ 5@e@@%equal @@!a@@@@@@@@@@@@@@%@@@ @@@@@@@@@@ Y@ f@@'compare @@!a@@ ,@@@@@@@@C@@@@I@@@ <@@@@@@@@@@ }@ :g@@'for_all @@J@@@@!a@H@@@@@@@@j @@@R@@@@@@@@ @ [h@@&exists @@k@@@@!a@i@@@@@@@@ @@@s@@@@@@@@ @ |i@@'to_list @!a@@@@h@@@@ؠ@@@@@@@@@ @ j@@&to_seq !@!a@@@@&Stdlib#Seq!t@@@@ޠ@@@@@@@@@ @ l@@*to_rev_seq "@ݠ!a@@@@$#Seq!t@@@@䠠@@@@@@@@@ "@ m@@+to_seq_from #@@@@@!a@@@@J#Seq!t@@@@렠@@@@@@@@@@@ H@ n@@'add_seq $@c#Seq!t@@@@@!a@@@@@@@; @@@?@@@@@@@@ o@ ,o@@&of_seq %@#Seq!t@E@@@@!a@@@@@@`@@@@@@ @ Mp@@'of_list &@Š@c@@@@!a@@@@@@~@@@@@@ @ V@@.disjoint_union '"eq&optionL@!a@@$boolE@@@@@@@@@@%print@ &Format)formatter@@@@ @@@ @@ @@ @@@ @)@@@ @/@@@Ġ3@@@@@@@@@@@@ @ W@@+union_right (@Р!a@@@@@ڠ @@@ޠ@@@@@@@@ @ X@@*union_left )@!a@@@@@ @@@@@@@@@@ @ (@ %Y@@+union_merge *@@!a@%@@@!@@"@ @@@#@@@@$@@@&@@'@@(@@)@ H@ EZ@@&rename +@$@@@*@@@+@@@@,@@@-@@.@@/@ _@ \[@@(map_keys ,@@,@@@0/@@@1@@2@E!a@4@@@3M@@@5@@6@@7@ }@ z\@@$keys -@Y!a@8@@@9 D#Set$Make !t@@@:@@;@ @ ]@@$data .@s!a@=@@@<Ԡ @@@>@@?@ @ ^@@&of_set /@@y@@@@!a@C@@A@ v#Set$Make E!t@@@B@@@D@@E@@F@ @ _@@7transpose_keys_and_data 0@@@@G@@@H@@@I@@@J@@K@ @ `@@;transpose_keys_and_data_set 1@@@@L@@@MƠ #Set$Make {!t@@@N@@@O@@P@ @ a@@%print 2@@ &Format)formatter@@@Q@!a@V @@@R@@S@@T@ &Format)formatter@@@U@@@@W @@@X@@Y@@Z@@[@ .@ +b@@@@ / ,v@@@Ӡ#Tbl @#key 3;@@@A !t@@@ @@@@ B@@@ ?h@A@!t 4;!a@ @A@A 'Hashtbl$Make !t@@@O@B@@@ \@@@ Yi@A@&create 5@ =@@@&!a@@@@@@@ q@ Ve@@%clear 6@!a@@@@$unitF@@@@@@ @ lf@@%reset 7@'!a@@@@@@@@@@ @ g@@$copy 8@;!a@@@@C@@@@@@ @ h@@#add 9@O!a@!@@@@@@@ @ F@@@"@@#@@$@@%@ @ i@@&remove :@k!a@&@@@'@@@@(_@@@)@@*@@+@ @ j@@$find ;@!a@.@@@,@5@@@- @@/@@0@ @ k@@(find_opt <@!a@3@@@1@J@@@2&optionL@@@4@@5@@6@ @ l@@(find_all =@!a@9@@@7@f@@@8$listK@@@:@@;@@<@ 1@ m@@'replace >@Ѡ!a@?@@@=@@@@>@ @@@@@@A@@B@@C@ L@ 1n@@#mem ?@!a@D@@@E@@@@F L@@@G@@H@@I@ e@ Jo@@$iter @@@@@@J@!a@N@@@K@@L@@M@ @@@O@@@P@@Q@@R@ @ kp@@2filter_map_inplace A@@@@@S@!a@W@@@T@@U@@V@8@@@X#@@@Y@@Z@@[@ @ q@@$fold B@@@@@\@!a@`@#acc@b@@]@@^@@_@[@@@a@  @@c@@d@@e@ @ r@@&length C@i!a@f@@@g @@@h@@i@ @ s@@%stats D@}!a@j@@@k *statistics@@@l@@m@ @ t@@&to_seq E@!a@o@@@n&Stdlib#Seq!t@Q@@@p@@@q@@@r@@s@@ u@@+to_seq_keys F@@@t@@@u"#Seq!tl@@@v@@@w@@x@1@v@@-to_seq_values G@Ѡ!a@z@@@y=#Seq!t @@@{@@|@I@.w@@'add_seq H@!a@~@@@}@W#Seq!t@@@@@@@@@@@@@@@@@@p@Ux@@+replace_seq I@!a@@@@@~#Seq!t@@@@@@@@@@@@@@@@@@@|y@@&of_seq J@#Seq!t@@@@@!a@@@@@@L@@@@@@@z@@'to_list K@X!a@@@@ @Q!t@@@@@@@@@@@@@j@@'of_list L@ @i!t@@@@!a@@@@@@@@@@@@@k@@&to_map M@!a@@@@#Map$Make!t@@@@@@@l@@&of_map N@#Map$Make!t!a@@@@ @@@@@@.@+m@@'memoize O@Π!a@@@@@@@@@ @@@@@@@@@@@@@J@Gn@@#map P@!a@@@@@@ !b@@@@@@@@@@@f@co@@@@gdw@@@@@Gy " "HJ  @dT@@@Ӡ2Sig_component_kind @!t Q;@@%Valuej@@\N"&]N"-@@yV@$Typek@@eO.2fO.8@@W@+Constructorl@@nP9=oP9J@@X@%Labelm@@wQKOxQKV@@Y@&Modulen@@RW[RWc@@Z@+Module_typeo@@SdhSdu@@[@5Extension_constructorp@@TvzTv@@\@%Classq@@UU@@]@*Class_typer@@VV@@^@@@A@@@@@M@@A@U@A@)to_string R@b@@@@@@@@@XX@@_@@3can_appear_in_types S@@@@ @@@ @@ @[[@@@`@@@@L  \AD@a@@@Ӡ$Item @!t T;@@@A@@@@٠@!t@@@@@@@@@cPRcPx@@@@b@A@$name U@#@@@@@@@@@dy{dy@@!c@@$kind V@@@@'!t@@@@@@ee@@4d@@$make W@(@@@@=!t@@@1@@@@@@@@0g1g@@Me@@%value X@!t@@@E@@@@@@DiEi@@af@@%type_ Y@!t@@@Y@@@@@@Xj Yj!@@ug@@&constr Z@!t@@@m@@@@@@lk"$mk"=@@h@@%label [@!t@@@@@@@@@l>@l>X@@i@@'module_ \@!t@@@@@@@@@mY[mYu@@j@@+module_type ]@!t@@@@@@@@@nvxnv@@k@@5extension_constructor ^@'!t@@@@@@@@@oo@@l@@&class_ _@;!t@@@@@@@@@pp@@m@@*class_type `@O!t@@@@@@@@@qq@@n@@%print a@&Stdlib&Format)formatter@@@@@@@@@@@@@@@ss*@@o@@Ӡ#Map b@#key c;@@@A@@@@@@@u,Fu,R@@@@3p@A@!t d;!a@@A@A@I@B@@@'map.mliI V ZI V e@@@@+Stdlib__MapD@A@%empty e!a@@@@@L  L  @@E@@#add f@;@@@@!a@@  @@@$ @@@@@@@@@@3O  4O  @@2F@@+add_to_list g@@@@@!a@@>$listK@@@@@@I @@@@@@@@@@@@@]X  ^X  @@\G@@&update h@I@@@@@&optionL!a@@@@  @@@@@@v@@@z@@@@@@@@@@^^@@H@@)singleton i@u@@@@!a@@@@@@@@@jW[jW{@@I@@&remove j@@@@@!a@@@@@@@@@@@@oo@@J@@%merge k@@@@@@`!a@@@@@k!b@@@@t!c@@@@@@@@@@@@@@@@@@@@@@@@@@@@vY]x@@K@@%union l@@@@@@!a@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@)fj*f@@(L@@(cardinal m@)!a@@@@#intA@@@@@@BC@@AM@@(bindings n@B!a@@@@ @>@@@֠@@@@@@@@@c8<d8a@@bN@@+min_binding o@c!a@@@@@[@@@ܠ@@@@@@bfb@@~O@@/min_binding_opt p@!a@@@@#@{@@@ᠠ@@@@@@@@@JNJ|@@P@@+max_binding q@!a@@@@@@@@砠@@@@@@484[@@Q@@/max_binding_opt r@!a@@@@`@@@@젠@@@@@@@@@ @@R@@&choose s@ݠ!a@@@@@@@@@@@@@@@@S@@*choose_opt t@!a@@@@@@@@@@@@@@@@@@@T@@$find u@@@@@!a@@@@@@@@@23@@1U@@(find_opt v@@@@@7!a@@@@۠ @@@@@@@@OIMPIs@@NV@@*find_first w@@=@@@$boolE@@@@@@\!a@ @@@ @T@@@ @@@ @@ @@@x  y  D@@wW@@.find_first_opt x@@f@@@)@@@@@@!a@@@@'@@@@@@@@@@@@@@@"*"."*"l@@X@@)find_last y@@@@@U@@@@@@!a@@@@@@@@@@@@@ @@!@#_#c#_#@@Y@@-find_last_opt z@@@@@"|@@@#@@$@֠!a@&@@@%z@@@@'@@@(@@@)@@*@@+@$y$}$y$@@Z@@$iter {@@@@@,@!a@0$unitF@@@-@@.@@/@ @@@1 @@@2@@3@@4@%%%& @@[@@$fold |@@ @@@5@!a@9@#acc@;@@6@@7@@8@0@@@:@  @@<@@=@@>@A'%')B'3'l@@@\@@#map }@@!a@@!b@B@@?@M @@@AQ @@@C@@D@@E@`(e(ia(e(@@_]@@$mapi ~@@N@@@F@!a@I!b@K@@G@@H@q @@@Ju @@@L@@M@@N@))))@@^@@&filter @@r@@@O@!a@T;@@@P@@Q@@R@ @@@S@@@U@@V@@W@****@@_@@*filter_map @@@@@X@!a@\O!b@^@@@Y@@Z@@[@@@@] @@@_@@`@@a@ ,, ,,?@@`@@)partition @@@@@b@!a@h@@@c@@d@@e@ @@@f@@@@i@@@@g@@j@@k@@l@.../%@@a@@%split @@@@m@!a@q@@@n@ @@@r@@@@p@@@@o@@s@@t@@u@,$0'0+-$0'0\@@+b@@(is_empty @,!a@v@@@w@@@x@@y@C022!D022;@@Bc@@,is_singleton @C!a@z@@@{@@@|@@}@Z32l2p[32l2@@Yd@@#mem @F@@@~@_!a@@@@@@@@@@@@v822w823@@ue@@%equal @@!a@@*@@@@@@@@@@@@@@@:@@@@@@@@@@<3j3n<3j3@@f@@'compare @@!a@@t@@@@@@@@@@@@@@@@@@@@@@@@@B44B44@@g@@'for_all @@@@@@!a@{@@@@@@@@ՠ @@@@@@@@@@@F5r5vF5r5@@h@@&exists @@@@@@!a@@@@@@@@@ @@@@@@@@@@@ K66" K66Q@@ i@@'to_list @ !a@@@@Ӡ@@@@@@@@@@@@@-R66.R67@@,j@@'of_list @@!@@@@!a@@@@@@?@@@@@@NV7]7aOV7]7@@Mk@@&to_seq @N!a@@@@&Stdlib#Seq!t@P@@@@@@@@@@@@u\888<v\888a@@tl@@*to_rev_seq @u!a@@@@'#Seq!t@t@@@@@@@@@@@@`88`88@@m@@+to_seq_from @@@@@!a@@@@P#Seq!t@@@@Š@@@@@@@@@@@d9;9?d9;9p@@n@@'add_seq @l#Seq!t@@@@ʠ@!a@@@@@@@٠ @@@ݠ@@@@@@@@i: :i: :=@@o@@&of_seq @#Seq!t@@@@Ҡ@!a@@@@@@@@@@@@m::m::@@p@@@@;u,.%@Wq@@@@@>b>>?vSV@[r@@@#var ;@@@A!t@@@@@@@OxXXPxXj@@@@ls@A@!t ;@@#uid@@{!t@@@@@@hykviyk@@w@$desc@@$desc @@@vykwyk@@x@,approximated@@@@@ykyk@@y@@@A@@@@@ykkyk@@@@t@A@;@@#VarS@@@@@{{@@z@#Abs@@@T@@@@@||@@{@#App@@@@@@@@}}@@|@&Struct#Map!t'@@@@@@@@~~@@}@%Alias5@@@@@@@~@$Leaf@@@@@$ProjK@@@/!t@@@@@1@@@@)Comp_unit @@@@@24 2I@@%A@%Error@@@@@JLJ]@@3B@@@A@@@@@z@@@@6u@B@%print @5&Format)formatter@@@@@@@@@@@@@@@4__5_@@QC@@2strip_head_aliases @@@@@@@@@@EF@@bD@@9for_unnamed_functor_param @@@@QR@@nE@@)fresh_var $nameh@@@@@@@!t@@@@@@@@@@@@@@@@@@z{@@F@@#var @$!t@@@@!t@@@@@@@@@@@:@@G@@#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@@@@@@@@@@@@@FG@@cL@@$leaf @!t@@@@@@@@@YZ@@vM@@-decompose_abs @@@@@@@@栠@@@@@@@@@@@@xy>@@N@@3for_persistent_unit @@@@@@@@@@@@@e@@O@@/leaf_for_unpack @@@@fff}@@P@@Ӡ#Map @%shape ;@@@A@@@@@@@@@@@Q@A@!t ;@@@A#Map!t@@@@@@@@@@@@@@R@@@%empty @@@@@@S@@#add @@@@@!t@@@@E@@@@@@ @@ @@ @@ @@@T@@)add_value @-@@@ @o!t@@@@!t@@@?@@@@@@@@@@  %@@(U@@.add_value_proj @M@@@@!t@@@@?@@@]@@@@@@@@@@)&(*&W@@FV@@(add_type @k@@@@!t@@@@]@@@{@@@@@@@ @@!@GY[HY@@dW@@-add_type_proj @@@@"@!t@@@#@{@@@$@@@%@@&@@'@@(@ef@@X@@*add_constr @@@@)@!t@@@*@@@@+@@@,@@-@@.@@/@@@Y@@/add_constr_proj @@@@0@!t@@@1@@@@2@@@3@@4@@5@@6@@@Z@@)add_label @@@@7@%!t@@@8@X!t@@@9@@@:@@;@@<@@=@E@@[@@.add_label_proj @@@@>@E!t@@@?@@@@@@@@A@@B@@C@@D@FHFw@@\@@*add_module @!@@@E@c!t@@@F@@@@G1@@@H@@I@@J@@K@y{y@@]@@/add_module_proj @?@@@L@!t@@@M@1@@@NO@@@O@@P@@Q@@R@@@8^@@/add_module_type @]@@@S@!t@@@T@!t@@@Uo@@@V@@W@@X@@Y@;< @@X_@@4add_module_type_proj @}@@@Z@!t@@@[@o@@@\@@@]@@^@@_@@`@YZE@@v`@@+add_extcons @@@@a@!t@@@b@@@@c@@@d@@e@@f@@g@wGIxGu@@a@@0add_extcons_proj @@@@h@!t@@@i@@@@j@@@k@@l@@m@@n@vxv@@b@@)add_class @@@@o@!t@@@p@L!t@@@q@@@r@@s@@t@@u@@@c@@.add_class_proj @@@@v@9!t@@@w@@@@x@@@y@@z@@{@@|@ @@d@@.add_class_type @@@@}@W!t@@@~@!t@@@'@@@@@@@@@@   <@@e@@3add_class_type_proj @5@@@@w!t@@@@'@@@E@@@@@@@@@@=?=s@@.f@@@@tw@2g@@@)dummy_mod x@@@@!yy"y@@>h@@'of_path *find_shape@ E!t@@@@!t@@@@@@@@@@)namespace Y!t@@@@$Path!t@@@@@@@@@@@@@VW @@si@@/set_uid_if_none @@@@@!t@@@@@@@@@@@no3@@j@@@&U9%Shape0mA;HXߠ)Unit_info0ڀh%(-Stdlib__Uchar056uf4[_+Stdlib__Set0kb'G|PIF(+Stdlib__Seq0nwzG&amg+Stdlib__Map0hؤ5O8% By/Stdlib__Hashtbl0ѱN][/!.Stdlib__Format0ɢb tLir.Stdlib__Either0Vy`u~c à.Stdlib__Domain0Bj|5s)ڠ.Stdlib__Buffer08APF< t.&Stdlib0-i8Q"L{v;$Path0(|r>8۠dwx,Identifiable0~ܽǞ+%Ident0ki8' x%+Š*Format_doc0]mWϓ:Mݠ8CamlinternalFormatBasics0%FU(Q/Tu@@@