OCaml compiler library : Linkdeps

`sig
type t
type compunit = string
type filename = string
val create : complete:bool -> Linkdeps.t
val add :
Linkdeps.t ->
filename:Linkdeps.filename ->
compunit:Linkdeps.compunit ->
provides:Linkdeps.compunit list ->
requires:Linkdeps.compunit list -> unit
val required : Linkdeps.t -> Linkdeps.compunit -> bool
type compunit_and_source = {
compunit : Linkdeps.compunit;
filename : Linkdeps.filename;
}
type error =
Missing_implementations of
(Linkdeps.compunit * Linkdeps.compunit_and_source list) list
| Wrong_link_order of
(Linkdeps.compunit_and_source * Linkdeps.compunit_and_source list)
list
| Multiple_definitions of
(Linkdeps.compunit * Linkdeps.filename list) list
val check : Linkdeps.t -> Linkdeps.error option
val report_error :
print_filename:string Format_doc.printer ->
Linkdeps.error Format_doc.format_printer
val report_error_doc :
print_filename:string Format_doc.printer ->
Linkdeps.error Format_doc.printer
end`