Caml1999I031:ed[%ShapeӠ#Uid @!t &8@@0Compilation_unit &stringO@@@v@@0typing/shape.mliR\`R\|@@A$Item )comp_unit@@@@uS}S}@@/B"id@#intA@@@t S}!S}@@=C@@$S}%S}@@AD(Internal@@-T.T@@JE&Predef=@@@s@@;U@[>_@@O@@@@p@@+Stdlib__SetE@(is_empty ?@ @@@q$boolE@@@r@@s@@F@#mem @@A@@@t@$@@@u@@@v@@w@@x@(@'G@#add A@@@@y@8@@@z;@@@{@@|@@}@;@:H@)singleton B@(@@@~I@@@@@@I@HI@&remove C@6@@@@Y@@@\@@@@@@@@\@[J@%union D@g@@@@l@@@o@@@@@@@@o@nK@%inter E@z@@@@@@@@@@@@@@@@L@(disjoint F@@@@@@@@@@@@@@@@@M@$diff G@@@@@@@@@@@@@@@@@N@'compare H@@@@@@@@#intA@@@@@@@@@O@%equal I@@@@@@@@@@@@@@@@@P@&subset J@@@@@@@@@@@@@@@@@Q@$iter K@@@@@$unitF@@@@@@@@@ @@@@@@@@@R@$fold L@@@@@@!a@@@@@@@@@@  @@@@@@@@T@'for_all M@@ @@@@@@@@@3@@@&@@@@@@@@7@6U@&exists N@@&@@@7@@@@@@M@@@@@@@@@@@@Q@PV@&filter O@@@@@@Q@@@@@@g@@@j@@@@@@@@j@iW@*filter_map P@@Y@@@&optionJb@@@@@@@@@@@@@@@@@@@@@X@)partition Q@@x@@@@@@@@@@@@@@@ڠ@@@@@@@@@@@Y@(cardinal R@@@@@@@@@@@Z@(elements S@@@@$listI@@@@@@@@@@[@'min_elt T@@@@@@@@@@@\@+min_elt_opt U@@@@o@@@@@@@@@@]@'max_elt V@@@@@@@@@@@^@+max_elt_opt W@@@@@@@@@@@@@@_@&choose X@@@@@@@@@@@`@*choose_opt Y@(@@@@@@@@@@@@0@/a@%split Z@@@@@@@@@F@@@:@@@O@@@@@@@@@@O@Nb@$find [@<@@@@_@@@D@@@@@@@@b@ac@(find_opt \@O@@@@r@@@[@@@ @@@ @@ @@ @z@yd@*find_first ]@@i@@@ z@@@@@@@@@u@@@@@@@@@e@.find_first_opt ^@@@@@@@@@@@@@@2@@@@@@@@@@@@f@)find_last _@@@@@@@@@@@@@@@@@ @@!@@"@@g@-find_last_opt `@@@@@#@@@$@@%@@@@&i@@@'@@@(@@)@@*@@h@+to_seq_from a@@@@+@@@@,&Stdlib#Seq!t@@@-@@@.@@/@@0@@j@&to_seq b@@@@1#Seq!t@@@2@@@3@@4@@k@*to_rev_seq c@'@@@5/#Seq!t@@@6@@@7@@8@2@1l@'add_seq d@B#Seq!t&@@@9@@@:@J@@@;M@@@<@@=@@>@M@Lm@&of_seq e@]#Seq!tA@@@?@@@@c@@@A@@B@c@bn@&output f@+out_channel@@@C@u@@@D@@@E@@F@@G@y@vM@%print g@6&Format)formatter@@@H@@@@I4@@@J@@K@@L@@N@)to_string h@@@@M&stringO@@@N@@O@@O@'of_list i@$listI@@@P@@@Q@@@R@@S@@P@#map j@@@@@T@@@U@@V@@@@W@@@X@@Y@@Z@@Q@@@Сu@@Ӡ#Map 4@#key k8@@@A^!t@@@@@@@@@@TA@!t l8!a@@A@A#Map$Maket!t@@@ݠI@B@@@@@@UA@%empty m!a@@@@@ @E@(is_empty n@!a@@@@$boolE@@@@@@ @F@#mem o@R@@@@-!a@@@@@@@@@@@@:@G@#add p@@@@@!a@@L @@@P @@@@@@@@@@U@H@&update q@5@@@@@&optionJ!a@@@@  @@@@@@u@@@y@@@@@@@@@@~@;I@)singleton r@^@@@@!a@@@@@@@@@@PJ@&remove s@s@@@@!a@@@@@@@@@@@@@iK@%merge t@@@@@@W!a@ @@@@b!b@@@@k!c@@@@ @@ @@ @@ @٠@@@@ߠ@@@@@@@@@@@@@@L@%union u@@@@@@!a@@ @@@@@@@@@@@@@@ @@@ @@@@@@@ @@!@@M@'compare v@@!a@&@@@@"@@#@@$@'@@@%@-@@@'@@@(@@)@@*@@+@6@N@%equal w@@!a@0@,@@@,@@-@@.@K@@@/@Q@@@1<@@@2@@3@@4@@5@Z@O@$iter x@@<@@@6@!a@:$unitF@@@7@@8@@9@t@@@; @@@<@@=@@>@}@:P@$fold y@@_@@@?@!a@C@!b@E@@@@@A@@B@@@@D@  @@F@@G@@H@@[Q@'for_all z@@@@@I@!a@M@@@J@@K@@L@ @@@N@@@O@@P@@Q@@|R@&exists {@@@@@R@!a@V@@@S@@T@@U@נ @@@W@@@X@@Y@@Z@@S@&filter |@@@@@[@!a@`@@@\@@]@@^@ @@@_@@@a@@b@@c@@T@*filter_map }@@@@@d@!a@h!b@j@@@e@@f@@g@@@@i"@@@k@@l@@m@'@U@)partition ~@@ @@@n@!a@t @@@o@@p@@q@? @@@rF@@@uK@@@s@@v@@w@@x@P@ V@(cardinal @W!a@y@@@z#@@@{@@|@d@!W@(bindings @k!a@~@@@}$listIU@@@@@@@@@@@@?X@+min_binding @!a@@@@m@@@ @@@@@@VY@/min_binding_opt @!a@@@@E@@@@@@@@@@@@rZ@+max_binding @!a@@@@@@@ @@@@@@[@/max_binding_opt @Ӡ!a@@@@x@@@@@@@@@@@@\@&choose @!a@@@@@@@ @@@@@@]@*choose_opt @!a@@@@@@@@@@@@@@@@^@%split @@@@@'!a@@@@2 @@@Ԡ@@@=@@@@@@@@@@B@_@$find @"@@@@N!a@@@@@@@@@W@`@(find_opt @7@@@@c!a@@@@ @@@@@@@@q@.a@*find_first @@S@@@d@@@@@@!a@@@@g@@@ @@@@@@@@Pb@.find_first_opt @@u@@@@@@@@@!a@@@@J@@@Ơ@@@@@@@@@@@wc@)find_last @@@@@@@@@@@̠!a@@@@@@@Р @@@@@@@@d@-find_last_opt @@@@@@@@@@@!a@@@@@@@٠@@@@@@@@@@ @e@#map @@!a@!b@@@@ @@@ @@@@@@@@ @f@$mapi @@@@@@!a@!b@@@@@@7 @@@; @@@@@@@@ @@g@&to_seq @G!a@@@@&Stdlib#Seq!t5@@@@@@@@@@@ b@ h@*to_rev_seq @i!a@@@@"#Seq!tT@@@@@@@@@@@ @ >i@+to_seq_from @a@@@@!a@@@@F#Seq!tx@@@@@@@@@@@@@ @ bj@'add_seq @]#Seq!t@@@!a@@@@@@@ @@@Š@@@@@@@ @ @ k@&of_seq @#Seq!t@@@ !a@ @@ @@@ @@@@@@ @ l@'of_list @G@@@!a@@@@@@@@@@@@ @ V@.disjoint_union "eq&optionJ@!a@!@$boolE@@@@@@@@@@%print@ &Format)formatter@@@@ @@@@@@@@@@@<)@@@@B/@@@ F3@@@"@@#@@$@@%@@&@ K@ HW@+union_right @R!a@)@@@'@\ @@@(`@@@*@@+@@,@ e@ bX@*union_left @l!a@/@@@-@v @@@.z@@@0@@1@@2@ @ |Y@+union_merge @@!a@7@@@3@@4@ @@@5@@@@6@@@8@@9@@:@@;@ @ Z@&rename @@@@<@@@=@@@@>@@@?@@@@@A@ @ [@(map_keys @@@@@B@@@C@@D@Ǡ!a@F@@@EϠ@@@G@@H@@I@ @ \@$keys @۠!a@J@@@K #Set$Make j!t@@@L@@M@ @ ]@$data @!a@O@@@NT @@@P@@Q@ @ ^@&of_set @@@@@R!a@U@@S@ #Set$Make !t@@@T@@@V@@W@@X@ $@ !_@7transpose_keys_and_data @+@@@Y@@@Z2@@@[@@@\@@]@ :@ 7`@;transpose_keys_and_data_set @A@@@^@@@_H #Set$Make !t@@@`@@@a@@b@ W@ Ta@%print @@ &Format)formatter@@@c@!a@h @@@d@@e@@f@ )&Format)formatter@@@g@|@@@i (@@@j@@k@@l@@m@ @ b@@@  v@@Ӡ#Tbl 5@#key 8@@@A !t@@@1@@@@ @@@ hA@!t 8!a@2@A@A ['Hashtbl$Make *!t@@@3O@B@@@ @@@ iA@&create @ @@@4%!a@5@@@6@@7@ @ e@%clear @!a@8@@@9$unitF@@@:@@;@ @ f@%reset @'!a@<@@@=@@@>@@?@ @ g@$copy @;!a@A@@@@C@@@B@@C@ @ h@#add @O!a@F@@@D@@@@E@ F@@@G@@H@@I@@J@ @ i@&remove @k!a@K@@@L@@@@M_@@@N@@O@@P@ 9@ j@$find @!a@S@@@Q@5@@@R @@T@@U@ N@ 3k@(find_opt @!a@X@@@V@J@@@W&optionJ@@@Y@@Z@@[@ j@ Ol@(find_all @!a@^@@@\@f@@@]$listI@@@_@@`@@a@ @ km@'replace @Ѡ!a@d@@@b@@@@c@ @@@e@@f@@g@@h@ @ n@#mem @!a@i@@@j@@@@k @@@l@@m@@n@ @ o@$iter @@@@@o@!a@s@@@p@@q@@r@ @@@t@@@u@@v@@w@ @ p@2filter_map_inplace @@@@@x@!a@|@@@y@@z@@{@8@@@}#@@@~@@@@@ @ q@$fold @@@@@@!a@@!b@@@@@@@@[@@@@  @@@@@@@ @ r@&length @i!a@@@@ @@@@@@ 2@ s@%stats @}!a@@@@ +*statistics@@@@@@ I@ .t@&to_seq @!a@@@@&Stdlib#Seq!tP@@@@@@@@@@@ k@ Pu@+to_seq_keys @@@@@@ #Seq!tj@@@@@@@@@ @ iv@-to_seq_values @Ϡ!a@@@@;#Seq!t @@@@@@ @ w@'add_seq @!a@@@@@U#Seq!t@@@@@@@@@@@@@@@@ @ x@+replace_seq @ !a@@@@@z#Seq!t@@@@@@@@ @@@@@@@@ @ y@&of_seq @#Seq!t@@@!a@@@@@@D@@@@@@@ z@'to_list @P!a@@@@ k !t@@@@@@@@@@@#@ j@'of_list @  !t@@@!a@@@@@@@@@@@@A@>k@&to_map @!a@@@@#Map$Make !t@@@@@@\@Yl@&of_map @#Map$Make !t!a@@@@@@@@@@w@tm@'memoize @ !a@@@@@@u@@@ @@@z@@@@@@@@@@@n@#map @ޠ!a@@@@@@ !b@@@@@@@@@@@@o@@@w@@@@vP88wa@S@@Ӡ2Sig_component_kind @!t 8@@%Value%@@e e @@U$Type&@@ff"@@V&Module'@@g#'g#/@@W+Module_type(@@h04h0A@@X5Extension_constructor)@@iBFiB]@@Y%Class*@@j^bj^i@@Z*Class_type+@@kjnkjz@@[@@A@@@@@d@@A@TA@)to_string @P@@@+@@@,@@-@m|~m|@@\@3can_appear_in_types @@@@.9@@@/@@0@pp @@]@@@cq @ ^@@Ӡ$Item @!t 8@@@A@@@@@t$&t$,@@@@_A@$make @ @@@@!t@@@@@@@@@@@v.0v.^@@4`@%value @!t@@@@@@@@@+x`b,x`z@@Ha@%type_ @!t@@@)@@@@@@?y{}@y{@@\b@'module_ @!t@@@=@@@@@@SzTz@@pc@+module_type @!t@@@Q@@@ @@!@g{h{@@d@5extension_constructor @!t@@@"e@@@#@@$@{|||@@e@&class_ @!t@@@%y@@@&@@'@}}@@f@*class_type @'!t@@@(@@@)@@*@~~:@@g@Ӡ#Map @#key 8@@@A@@@@@@@@<V@<b@@@@hA@!t 8!a@@A@A@I@B@@@'map.mliF ; ?F ; J@@@@+Stdlib__MapDA@%empty !a@@@@@I  I  @@E@(is_empty @!a@@@@$boolE@@@@@@-L  .L  @@,F@#mem @R@@@@3!a@@@@@@@@@@@@JO  KO  $@@IG@#add @@@@@!a@@U @@@Y @@@@@@@@@@hS  iS  @@gH@&update @;@@@@@&optionJ!a@@@@  @@@@@@@@@@@@@@@@@@@\dh\d@@I@)singleton @g@@@@!a@@@@@@@@@ii9@@J@&remove @@@@@!a@@@@@@@@@@@@oo@@K@%merge @@@@@@`!a@@@@@k!b@@@@ t!c@@@@ @@ @@ @@ @@@@@@@@@@@@@@@@@@vxb@@L@%union @@@@@@!a@@ @@@@@@@@@@@@@@!@@@%@@@@@ @@!@@"@44854y@@3M@'compare @@!a@'@#intA@@@#@@$@@%@D@@@&@J@@@(@@@)@@*@@+@@,@]^@@\N@%equal @@!a@1@I@@@-@@.@@/@k@@@0@q@@@2Y@@@3@@4@@5@@6@X\X@@O@$iter @@Y@@@7@!a@;$unitF@@@8@@9@@:@@@@< @@@=@@>@@?@@@P@$fold @@@@@@@!a@D@!b@F@@A@@B@@C@@@@E@  @@G@@H@@I@ @@Q@'for_all @@@@@J@!a@N@@@K@@L@@M@ߠ @@@O@@@P@@Q@@R@ @@R@&exists @@@@@S@!a@W@@@T@@U@@V@ @@@X@@@Y@@Z@@[@@@S@&filter @@@@@\@!a@a@@@]@@^@@_@' @@@`+@@@b@@c@@d@:@D;@s@@9T@*filter_map @@@@@e@!a@i֠!b@k@@@f@@g@@h@P@@@jT@@@l@@m@@n@cd@@bU@)partition @@8@@@o@!a@uR@@@p@@q@@r@t @@@s{@@@v@@@t@@w@@x@@y@!!!!@@V@(cardinal @!a@z@@@{[@@@|@@}@"""# @@W@(bindings @!a@@@@~$listI@@@@@@@@@@@#]#a#]#@@X@+min_binding @Ǡ!a@@@@@@@ @@@@@$$$$@@Y@/min_binding_opt @!a@@@@z@@@@@@@@@@@%%%%@@Z@+max_binding @!a@@@@@@@ @@@@@&l&p&l&@@[@/max_binding_opt @!a@@@@@@@@@@@@@@@9'':''L@@8\@&choose @9!a@@@@@@@ @@@@@S''T''@@R]@*choose_opt @S!a@@@@5@@@@@@@@@@@r((s()@@q^@%split @E@@@@w!a@@@@ @@@@@@@@@@@@@@@@ )) )* @@_@$find @o@@@@!a@@@@@@@@@++++@@`@(find_opt @@@@@!a@@@@R @@@@@@@@,7,;,7,a@@a@*find_first @@@@@@@@@@@ܠ!a@@@@@@@ @@@@@@@ -- --6@@b@.find_first_opt @@@@@@@@@@@!a@@@@@@@Ǡ@@@@@@@@@@ -//!!-//_@@c@)find_last @@@@@ @@@@@@+!a@@@@ @@@Ѡ @@@@@@@E40W0[F40W0@@Dd@-find_last_opt @@@@@.@@@@@@P!a@@@@2@@@ڠ@@@@@@@@@@o;1v1zp;1v1@@ne@#map @@!a@!b@@@@{ @@@ @@@@@@@@C22C22@@f@$mapi @@c@@@@!a@!b@@@@@@ @@@ @@@@@@@@J44J44I@@g@&to_seq @!a@@@@&Stdlib#Seq!t@@@@@@@@@@@P44P45#@@h@*to_rev_seq @נ!a@@@@%#Seq!t@@@@@@@@@@@T5y5}T5y5@@i@+to_seq_from @@@@@!a@@@@L#Seq!t@@@@@@@@@@@@@ X56!X562@@j@'add_seq @f#Seq!t@@@!a@@@@@@@5 @@@9@@@@@ @@ @H]66I]66@@Gk@&of_seq @#Seq!t%@@@ !a@@@ @@@ [@@@@@@ja7M7Qka7M7v@@il@@@4@<>~@Pi@@@@7s8Acf@Tj@@#var 8@@@A!t@@@@@@@GChhHChz@@@@dkA@!t 8@@#uid@&optionJu!t@@@@@@bD{cD{@@o$desc@$desc @@@pD{qD{@@p@@A@@@@@tD{{uD{@@@@lA@ 8@@#VarH@@@@@FF@@q#Abs@@@J@@@@@GG@@r#App@@@@@@@@HH@@s&Struct#Map!t'@@@@@@@@II@@t$Leaf@@J J @@u$Proj>@@@"!t@@@@@K  K  @@v)Comp_unit@@@@@L  !L  6@@w@@A@@@@@E@@@@ mB@%print @&Stdlib&Format)formatter@@@@o@@@@@@@@@@@ N 8 8 N 8 a@@'x@9for_unnamed_functor_param @@@@R } }R } @@3y@)fresh_var $nameΠ-@@@@@@@!t@@@@@@@@@@@@@@@@=S  >S  @@Zz@#var @!t@@@@!t@@@@@@@@@@@XU  YU  @@u{@#abs #uidB !t@@@@@@@@@@@@@@@@@@@@@@@@{V  |V  @@|@#app #uide0!t@@@@@@@@@@#arg@@@ @@@@@@@@@@W  W  @@@}@#str #uidU!t@@@@@@@#Map!t+@@@@@@/@@@@@@@@X A AX A j@@~@$proj #uid{!t@@@@@@@J@@@@/!t@@@T@@@@@@@@@@Y k kY k @@@$leaf @!t@@@g@@@@@@Z  Z  @@@@-decompose_abs @u@@@@@@@@@@@@@@@@@\  \  @@8A@3for_persistent_unit @,@@@@@@@@@-^  .^  @@JB@/leaf_for_unpack @@@@9_  :_  @@VC@Ӡ#Map @%shape 8@@@A@@@p@@@@Lb ' )Mb ' 7@@@@iDA@!t 8@@@A#Map!t@@@q@@@r@@@@ac 8 :bc 8 V@@@@~E@@%empty @@@s@ne X Zoe X g@@F@#add @@@@t@!t@@@u@C@@@v@@@w@@x@@y@@z@g i kg i @@G@)add_value @-@@@{@)!t@@@|@I!t@@@}?@@@~@@@@@@@i  i  @@H@.add_value_proj @M@@@@I!t@@@@?@@@]@@@@@@@@@@j  j  @@I@(add_type @k@@@@g!t@@@@!t@@@}@@@@@@@@@@l  l  @@J@-add_type_proj @@@@@!t@@@@}@@@@@@@@@@@@@m   m  L@@%K@*add_module @@@@@!t@@@@@@@@@@@@@@@@@&o N P'o N {@@CL@/add_module_proj @@@@@!t@@@@@@@@@@@@@@@@@Dp | ~Ep | @@aM@/add_module_type @@@@@!t@@@@!t@@@@@@@@@@@@@dr  er  @@N@4add_module_type_proj @@@@@!t@@@@@@@@@@@@@@@@@s  s  @@O@+add_extcons @#@@@@!t@@@@?!t@@@5@@@@@@@@@@u  u  J@@P@0add_extcons_proj @C@@@@?!t@@@@5@@@S@@@@@@@@@@v K Mv K ~@@Q@)add_class @a@@@@]!t@@@@}!t@@@s@@@@@@@@@@x  x  @@R@.add_class_proj @@@@@}!t@@@@s@@@@@@@@@@@@@y  y  @@S@.add_class_type @@@@@!t@@@@!t@@@@@@@@@@@@@{  { @@;T@3add_class_type_proj @@@@@!t@@@@@@@@@@@@@@@@@<|=|H@@YU@@@@a  A}IL@]V@@)dummy_mod @@@@LNNMN_@@iW@'of_path !*find_shape@ N!t@@@@!t@@@@@@@@@@)namespace b!t@@@@$Path!t@@@@@@@@@@@@@aa@@X@/set_uid_if_none "@@@@@6!t@@@@@@@@@@@@@Y@Ӡ+Make_reduce #@'Context %#env 8@@@A@@@@@   @@@@ZA@$fuel @@@f@)@@[@/read_unit_shape )unit_name@@@gv;@@@h@@@i@@j@+/+a@@\@*find_shape @7@@@k@q!t@@@lV@@@m@@n@@o@cgc@@ ]@@&reduce @X#env@@@a@m@@@bp@@@c@@d@@e@@@$_@@@  @(`@@,local_reduce $@@@@@@@@@@@@9a@@FР%Shape0H[DTċwToe@Q-Stdlib__Uchar0*Ujmyc6]]W+Stdlib__Set0.z9FX+Stdlib__Seq05"g1<)b+Stdlib__Map0kZ,ҷ'V/Stdlib__Hashtbl04$*uկdD.Stdlib__Format0{hXsHW#ȼ.Stdlib__Either0&]XF.Stdlib__Buffer0K ɦb+Z8)#KH"&Stdlib0yӶ~*$Path0L%SsN|#Ɣj,Identifiable0m7 ^UKxե%Ident0;Hf:#}8CamlinternalFormatBasics0cEXy