A root can be seen as a unique representative of a odoc file.

Roots are used by doc-ock (at the root of every resolved path/identifier/reference) and present at the beginning of every .odoc file.

module Package : sig ... end
module Odoc_file : sig ... end
module Digest = Digest
type t
val equal : t -> t -> bool
val hash : t -> int
val create : package:Package.t -> file:Odoc_file.t -> digest:Digest.t -> t


val digest : t -> Digest.t
val package : t -> Package.t
val file : t -> Odoc_file.t


val to_string : t -> string

Useful for debugging

val load : string -> in_channel -> t

load fn ic reads a t from ic. fn is the name of the file ic is "watching", and is used for error reporting.

val read : Fs.File.t -> t

read f opens f for reading and then calls load.

val save : out_channel -> t -> unit

save oc t marshalls t to oc.

module Xml : sig ... end

XML de/serialization.