Module Odoc_xref2.Component

Component module

Useful maps

module IdentMap : Map.S with type key = Odoc_xref2.Ident.any
module Delayed : sig ... end

Delayed is a bit like Lazy.t but may in the future offer the chance to peek inside to be able to optimize the calculation

module Opt : sig ... end

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:

module Module : sig ... end
module ModuleSubstitution : sig ... end
module ModuleTypeSubstitution : sig ... end
module TypeExpr : sig ... end
module Extension : sig ... end
module Exception : sig ... end
module FunctorParameter : sig ... end
module ModuleType : sig ... end
module TypeDecl : sig ... end
module Signature : sig ... end
module Open : sig ... end
module Include : sig ... end
module Value : sig ... end
module Class : sig ... end
module ClassType : sig ... end
module ClassSignature : sig ... end
module Method : sig ... end
module InstanceVariable : sig ... end
module Substitution : sig ... end
module CComment : sig ... end
module Label : sig ... end
module Element : sig ... end
module Fmt : sig ... end

Formatting functions for components

module Of_Lang : sig ... end
val module_of_functor_argument : FunctorParameter.parameter -> Module.t
val extract_signature_doc : Signature.t -> CComment.docs