Module Odoc_xref2.ComponentSource
Component module
module ModuleMap : Stdlib.Map.S with type key = Odoc_xref2.Ident.module_module TypeMap : Stdlib.Map.S with type key = Odoc_xref2.Ident.type_module ModuleTypeMap :
Stdlib.Map.S with type key = Odoc_xref2.Ident.module_typemodule ValueMap : Stdlib.Map.S with type key = Odoc_xref2.Ident.valuemodule IdentMap : Stdlib.Map.S with type key = Odoc_xref2.Ident.anyDelayed is a bit like Lazy.t but may in the future offer the chance to peek inside to be able to optimize the calculation
Components
The modules/types here are very similar to those in Odoc_model.Lang, in most cases the only difference being that we have Idents (which are local) rather than Identifiers (which are global), Cpaths instead of Paths, and Cfrags rather than Fragments. All of these are to support the use of local idents.
Note that we still use global References rather than local ones - this is because at the point these components are being used all the references are unresolved, and hence do not contain any resolved global identifiers. When resolving references, we construct paths in parallel, which also helps avoid the need for local references.
These idents of items are kept outside of the types themselves in order to help with laziness.
There are a few other minor differences:
- Signatures keep track of removed items. These items are removed during destructive substitution.
val module_of_functor_argument :
Odoc_xref2.Component.FunctorParameter.parameter ->
Odoc_xref2.Component.Module.tval extract_signature_doc :
Odoc_xref2.Component.Signature.t ->
Odoc_xref2.Component.CComment.docs