1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162openUrimoduleDerived=structopenSexplib0.Sexp_convtypecomponent=[|`Scheme|`Authority|`Userinfo(* subcomponent of authority in some schemes *)|`Host(* subcomponent of authority in some schemes *)|`Path|`Query|`Query_key|`Query_value|`Fragment][@@derivingsexp]typet={scheme:stringoption[@defaultNone][@sexp_drop_default];userinfo:stringoption[@defaultNone][@sexp_drop_default];host:stringoption[@defaultNone][@sexp_drop_default];port:intoption[@defaultNone][@sexp_drop_default];path:string[@default""][@sexp_drop_default];query:(string*stringlist)sexp_list;fragment:stringoption[@defaultNone][@sexp_drop_default]}[@@derivingsexp]endopenDerivedletcomponent_of_sexp=component_of_sexpletsexp_of_component=sexp_of_componentlett_of_sexpsexp=lett=t_of_sexpsexpinUri.make?scheme:t.scheme?userinfo:t.userinfo?host:t.host?port:t.port~path:t.path~query:t.query?fragment:t.fragment()letsexp_of_tt=sexp_of_t{scheme=schemet;userinfo=userinfot;host=hostt;port=portt;path=patht;query=queryt;fragment=fragmentt}typecomponent=Uri.componentletcompareab=Uri.compareabtypet=Uri.t