123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532openType_descopenOdoc_modelmoduleRoot=structlett:Root.tt=To_string(fun_->"<root>")endmoduleNames=structincludeNamesletmodulename=To_stringModuleName.to_stringletmoduletypename=To_stringModuleTypeName.to_stringlettypename=To_stringTypeName.to_stringletclassname=To_stringTypeName.to_stringletclasstypename=To_stringTypeName.to_stringletconstructorname=To_stringConstructorName.to_stringletfieldname=To_stringFieldName.to_stringletexceptionname=To_stringExceptionName.to_stringletextensionname=To_stringExtensionName.to_stringletvaluename=To_stringValueName.to_stringletmethodname=To_stringMethodName.to_stringletinstancevariablename=To_stringInstanceVariableName.to_stringletlabelname=To_stringLabelName.to_stringletpagename=To_stringPageName.to_stringletassetname=To_stringAssetName.to_stringletparametername=To_stringModuleName.to_stringletdefname=To_stringDefName.to_stringletlocalname=To_stringLocalName.to_stringendmoduleGeneral_paths=struct(** Simplified paths types that can be coerced to. *)typep=Paths.Path.ttyperp=Paths.Path.Resolved.ttypef=Paths.Fragment.ttyperf=Paths.Fragment.Resolved.ttyper=Paths.Reference.ttyperr=Paths.Reference.Resolved.ttypeid_t=Paths.Identifier.ttypetag=Paths.Reference.tag_anyletrecidentifier:Paths.Identifier.tt=Variant(funx->matchx.ivwith|`Page(parent,name)->C("`Page",((parent:>id_toption),name),Pair(Optionidentifier,Names.pagename))|`LeafPage(parent,name)->C("`LeafPage",((parent:>id_toption),name),Pair(Optionidentifier,Names.pagename))|`AssetFile(parent,name)->C("`AssetFile",((parent:>id_t),name),Pair(identifier,Names.assetname))|`Root(parent,name)->C("`Root",((parent:>id_toption),name),Pair(Optionidentifier,Names.modulename))|`Module(parent,name)->C("`Module",((parent:>id_t),name),Pair(identifier,Names.modulename))|`Parameter(parent,name)->C("`Parameter",((parent:>id_t),name),Pair(identifier,Names.parametername))|`Resultr->C("`Result",(r:>id_t),identifier)|`ModuleType(parent,name)->C("`ModuleType",((parent:>id_t),name),Pair(identifier,Names.moduletypename))|`Class(parent,name)->C("`Class",((parent:>id_t),name),Pair(identifier,Names.classname))|`ClassType(parent,name)->C("`ClassType",((parent:>id_t),name),Pair(identifier,Names.classtypename))|`Type(parent,name)->C("`Type",((parent:>id_t),name),Pair(identifier,Names.typename))|`Constructor(parent,name)->C("`Constructor",((parent:>id_t),name),Pair(identifier,Names.constructorname))|`Field(parent,name)->C("`Field",((parent:>id_t),name),Pair(identifier,Names.fieldname))|`Extension(parent,name)->C("`Extension",((parent:>id_t),name),Pair(identifier,Names.extensionname))|`ExtensionDecl(parent,name,name')->C("`ExtensionDecl",((parent:>id_t),name,name'),Triple(identifier,Names.extensionname,Names.extensionname))|`Exception(parent,name)->C("`Exception",((parent:>id_t),name),Pair(identifier,Names.exceptionname))|`Value(parent,name)->C("`Value",((parent:>id_t),name),Pair(identifier,Names.valuename))|`Method(parent,name)->C("`Method",((parent:>id_t),name),Pair(identifier,Names.methodname))|`InstanceVariable(parent,name)->C("`InstanceVariable",((parent:>id_t),name),Pair(identifier,Names.instancevariablename))|`Label(parent,name)->C("`Label",((parent:>id_t),name),Pair(identifier,Names.labelname))|`SourcePage(parent,name)->C("`SourcePage",((parent:>id_t),name),Pair(identifier,string))|`SourceLocation(parent,name)->C("`SourceLocation",((parent:>id_t),name),Pair(identifier,Names.defname))|`SourceLocationInternal(parent,name)->C("`SourceLocationInternal",((parent:>id_t),name),Pair(identifier,Names.localname))|`SourceLocationModparent->C("`SourceLocationMod",(parent:>id_t),identifier))letreference_tag:tagt=Variant(function|`TClass->C0"`TClass"|`TClassType->C0"`TClassType"|`TConstructor->C0"`TConstructor"|`TException->C0"`TException"|`TExtension->C0"`TExtension"|`TExtensionDecl->C0"`TExtensionDecl"|`TField->C0"`TField"|`TInstanceVariable->C0"`TInstanceVariable"|`TLabel->C0"`TLabel"|`TMethod->C0"`TMethod"|`TModule->C0"`TModule"|`TModuleType->C0"`TModuleType"|`TPage->C0"`TPage"|`TAsset->C0"`TAsset"|`TType->C0"`TType"|`TUnknown->C0"`TUnknown"|`TValue->C0"`TValue"|`TChildPage->C0"`TChildPage"|`TChildModule->C0"`TChildModule")letrecpath:pt=Variant(function|`Resolvedx->C("`Resolved",x,resolved_path)|`Identifier(x1,x2)->C("`Identifier",((x1:>id_t),x2),Pair(identifier,bool))|`Rootx->C("`Root",x,Names.modulename)|`Forwardx->C("`Forward",x,string)|`Dot(x1,x2)->C("`Dot",((x1:>p),x2),Pair(path,Names.modulename))|`DotT(x1,x2)->C("`DotT",((x1:>p),x2),Pair(path,Names.typename))|`DotMT(x1,x2)->C("`DotMT",((x1:>p),x2),Pair(path,Names.moduletypename))|`DotV(x1,x2)->C("`DotV",((x1:>p),x2),Pair(path,Names.valuename))|`Apply(x1,x2)->C("`Apply",((x1:>p),(x2:>p)),Pair(path,path))|`Substitutedm->C("`Substituted",(m:>p),path)|`SubstitutedMTm->C("`SubstitutedMT",(m:>p),path)|`SubstitutedTm->C("`SubstitutedT",(m:>p),path)|`SubstitutedCTm->C("`SubstitutedCT",(m:>p),path))andresolved_path:rpt=Variant(function|`Identifierx->C("`Identifier",x,identifier)|`CoreTypen->C("`CoreType",n,Names.typename)|`Subst(x1,x2)->C("`Subst",((x1:>rp),(x2:>rp)),Pair(resolved_path,resolved_path))|`Hiddenx->C("`Hidden",(x:>rp),resolved_path)|`Module(x1,x2)->C("`Module",((x1:>rp),x2),Pair(resolved_path,Names.modulename))|`Canonical(x1,x2)->C("`Canonical",((x1:>rp),(x2:>p)),Pair(resolved_path,path))|`Apply(x1,x2)->C("`Apply",((x1:>rp),(x2:>rp)),Pair(resolved_path,resolved_path))|`Alias(dest,src)->C("`Alias",((dest:>rp),(src:>p)),Pair(resolved_path,path))|`AliasModuleType(x1,x2)->C("`AliasModuleType",((x1:>rp),(x2:>rp)),Pair(resolved_path,resolved_path))|`OpaqueModulex->C("`OpaqueModule",(x:>rp),resolved_path)|`ModuleType(x1,x2)->C("`ModuleType",((x1:>rp),x2),Pair(resolved_path,Names.moduletypename))|`SubstT(x1,x2)->C("`SubstT",((x1:>rp),(x2:>rp)),Pair(resolved_path,resolved_path))|`CanonicalModuleType(x1,x2)->C("`CanonicalModuleType",((x1:>rp),(x2:>p)),Pair(resolved_path,path))|`CanonicalType(x1,x2)->C("`CanonicalType",((x1:>rp),(x2:>p)),Pair(resolved_path,path))|`OpaqueModuleTypex->C("`OpaqueModuleType",(x:>rp),resolved_path)|`Type(x1,x2)->C("`Type",((x1:>rp),x2),Pair(resolved_path,Names.typename))|`Value(x1,x2)->C("`Value",((x1:>rp),x2),Pair(resolved_path,Names.valuename))|`Class(x1,x2)->C("`Class",((x1:>rp),x2),Pair(resolved_path,Names.classname))|`ClassType(x1,x2)->C("`ClassType",((x1:>rp),x2),Pair(resolved_path,Names.classtypename))|`Substitutedc->C("`Substituted",(c:>rp),resolved_path)|`SubstitutedMTc->C("`SubstitutedMT",(c:>rp),resolved_path)|`SubstitutedTc->C("`SubstitutedT",(c:>rp),resolved_path)|`SubstitutedCTc->C("`SubstitutedCT",(c:>rp),resolved_path))andhierarchy_reference:Paths.Reference.Hierarchy.tt=lettag_page_path=Variant(function|`TRelativePath->C0"`TRelativePath"|`TAbsolutePath->C0"`TAbsolutePath"|`TCurrentPackage->C0"`TCurrentPackage")inPair(tag_page_path,Liststring)andreference:rt=Variant(function|`Resolvedx->C("`Resolved",x,resolved_reference)|`Root(x1,x2)->C("`Root",(x1,x2),Pair(string,reference_tag))|`Dot(x1,x2)->C("`Dot",((x1:>r),x2),Pair(reference,string))|`Page_pathx->C("`Page_path",x,hierarchy_reference)|`Asset_pathx->C("`Asset_path",x,hierarchy_reference)|`Module_pathx->C("`Module_path",x,hierarchy_reference)|`Any_pathx->C("`Any_path",x,hierarchy_reference)|`Module(x1,x2)->C("`Module",((x1:>r),x2),Pair(reference,Names.modulename))|`ModuleType(x1,x2)->C("`ModuleType",((x1:>r),x2),Pair(reference,Names.moduletypename))|`Type(x1,x2)->C("`Type",((x1:>r),x2),Pair(reference,Names.typename))|`Constructor(x1,x2)->C("`Constructor",((x1:>r),x2),Pair(reference,Names.constructorname))|`Field(x1,x2)->C("`Field",((x1:>r),x2),Pair(reference,Names.fieldname))|`Extension(x1,x2)->C("`Extension",((x1:>r),x2),Pair(reference,Names.extensionname))|`ExtensionDecl(x1,x2)->C("`ExtensionDecl",((x1:>r),x2),Pair(reference,Names.extensionname))|`Exception(x1,x2)->C("`Exception",((x1:>r),x2),Pair(reference,Names.exceptionname))|`Value(x1,x2)->C("`Value",((x1:>r),x2),Pair(reference,Names.valuename))|`Class(x1,x2)->C("`Class",((x1:>r),x2),Pair(reference,Names.classname))|`ClassType(x1,x2)->C("`ClassType",((x1:>r),x2),Pair(reference,Names.classtypename))|`Method(x1,x2)->C("`Method",((x1:>r),x2),Pair(reference,Names.methodname))|`InstanceVariable(x1,x2)->C("`InstanceVariable",((x1:>r),x2),Pair(reference,Names.instancevariablename))|`Label(x1,x2)->C("`Label",((x1:>r),x2),Pair(reference,Names.labelname)))andresolved_reference:rrt=Variant(function|`Class(x1,x2)->C("`Class",((x1:>rr),x2),Pair(resolved_reference,Names.classname))|`ClassType(x1,x2)->C("`ClassType",((x1:>rr),x2),Pair(resolved_reference,Names.classtypename))|`Constructor(x1,x2)->C("`Constructor",((x1:>rr),x2),Pair(resolved_reference,Names.constructorname))|`PolyConstructor(x1,x2)->C("`PolyConstructor",((x1:>rr),x2),Pair(resolved_reference,Names.constructorname))|`Exception(x1,x2)->C("`Exception",((x1:>rr),x2),Pair(resolved_reference,Names.exceptionname))|`Extension(x1,x2)->C("`Extension",((x1:>rr),x2),Pair(resolved_reference,Names.extensionname))|`ExtensionDecl(x1,x2,x3)->C("`ExtensionDecl",((x1:>rr),x2,x3),Triple(resolved_reference,Names.extensionname,Names.extensionname))|`Field(x1,x2)->C("`Field",((x1:>rr),x2),Pair(resolved_reference,Names.fieldname))|`Hiddenx->C("`Hidden",(x:>rr),resolved_reference)|`Identifierx->C("`Identifier",(x:>id_t),identifier)|`InstanceVariable(x1,x2)->C("`InstanceVariable",((x1:>rr),x2),Pair(resolved_reference,Names.instancevariablename))|`Label(x1,x2)->C("`Label",((x1:>rr),x2),Pair(resolved_reference,Names.labelname))|`Method(x1,x2)->C("`Method",((x1:>rr),x2),Pair(resolved_reference,Names.methodname))|`Module(x1,x2)->C("`Module",((x1:>rr),x2),Pair(resolved_reference,Names.modulename))|`ModuleType(x1,x2)->C("`ModuleType",((x1:>rr),x2),Pair(resolved_reference,Names.moduletypename))|`Alias(x1,x2)->C("`Alias",((x1:>rp),(x2:>rr)),Pair(resolved_path,resolved_reference))|`AliasModuleType(x1,x2)->C("`AliasModuleType",((x1:>rp),(x2:>rr)),Pair(resolved_path,resolved_reference))|`Type(x1,x2)->C("`Type",((x1:>rr),x2),Pair(resolved_reference,Names.typename))|`Value(x1,x2)->C("`Value",((x1:>rr),x2),Pair(resolved_reference,Names.valuename)))letresolved_fragment_root:Paths.Fragment.Resolved.roott=Variant(function|`ModuleTypex->C("`ModuleType",(x:>rp),resolved_path)|`Modulex->C("`Module",(x:>rp),resolved_path))letrecresolved_fragment:rft=Variant(function|`Rootx->C("`Root",x,resolved_fragment_root)|`Subst(x1,x2)->C("`Subst",((x1:>rp),(x2:>rf)),Pair(resolved_path,resolved_fragment))|`Alias(x1,x2)->C("`Alias",((x1:>rp),(x2:>rf)),Pair(resolved_path,resolved_fragment))|`Module(x1,x2)->C("`Module",((x1:>rf),x2),Pair(resolved_fragment,Names.modulename))|`Module_type(x1,x2)->C("`Module_type",((x1:>rf),x2),Pair(resolved_fragment,Names.moduletypename))|`Type(x1,x2)->C("`Type",((x1:>rf),x2),Pair(resolved_fragment,Names.typename))|`Class(x1,x2)->C("`Class",((x1:>rf),x2),Pair(resolved_fragment,Names.classname))|`ClassType(x1,x2)->C("`ClassType",((x1:>rf),x2),Pair(resolved_fragment,Names.classtypename))|`OpaqueModulex->C("`OpaqueModule",(x:>rf),resolved_fragment))letrecfragment:ft=Variant(function|`Resolvedx->C("`Resolved",(x:>rf),resolved_fragment)|`Dot(x1,x2)->C("`Dot",((x1:>f),x2),Pair(fragment,string))|`Root->C0"`Root")endletroot=Root.tletmodulename=Names.modulename(* Indirection seems to be required to make the type open. *)letidentifier:[<Paths.Identifier.t_pv]Paths.Identifier.idType_desc.t=Indirect((funn->(n:>Paths.Identifier.t)),General_paths.identifier)letresolved_path:[<Paths.Path.Resolved.t]Type_desc.t=Indirect((funn->(n:>General_paths.rp)),General_paths.resolved_path)letpath:[<Paths.Path.t]Type_desc.t=Indirect((funn->(n:>General_paths.p)),General_paths.path)letresolved_fragment=Indirect((funn->(n:>General_paths.rf)),General_paths.resolved_fragment)letfragment=Indirect((funn->(n:>General_paths.f)),General_paths.fragment)letreference=Indirect((funn->(n:>General_paths.r)),General_paths.reference)