sig
  type modname = string
  type filename = string
  type file_prefix = string
  val modulize : string -> Unit_info.modname
  val normalize : string -> string
  val modname_from_source : Unit_info.filename -> Unit_info.modname
  val is_unit_name : Unit_info.modname -> bool
  type t
  val source_file : Unit_info.t -> Unit_info.filename
  val prefix : Unit_info.t -> Unit_info.file_prefix
  val modname : Unit_info.t -> Unit_info.modname
  val check_unit_name : Unit_info.t -> unit
  val make :
    ?check_modname:bool ->
    source_file:Unit_info.filename -> Unit_info.file_prefix -> Unit_info.t
  module Artifact :
    sig
      type t
      val source_file : Unit_info.Artifact.t -> Unit_info.filename option
      val prefix : Unit_info.Artifact.t -> Unit_info.file_prefix
      val filename : Unit_info.Artifact.t -> Unit_info.filename
      val modname : Unit_info.Artifact.t -> Unit_info.modname
      val from_filename : Unit_info.filename -> Unit_info.Artifact.t
    end
  val cmi : Unit_info.t -> Unit_info.Artifact.t
  val cmo : Unit_info.t -> Unit_info.Artifact.t
  val cmx : Unit_info.t -> Unit_info.Artifact.t
  val obj : Unit_info.t -> Unit_info.Artifact.t
  val cmt : Unit_info.t -> Unit_info.Artifact.t
  val cmti : Unit_info.t -> Unit_info.Artifact.t
  val annot : Unit_info.t -> Unit_info.Artifact.t
  val companion_cmi : Unit_info.Artifact.t -> Unit_info.Artifact.t
  val companion_obj : Unit_info.Artifact.t -> Unit_info.Artifact.t
  val companion_cmt : Unit_info.Artifact.t -> Unit_info.Artifact.t
  val mli_from_source : Unit_info.t -> Unit_info.filename
  val mli_from_artifact : Unit_info.Artifact.t -> Unit_info.filename
  val is_cmi : Unit_info.Artifact.t -> bool
  val find_normalized_cmi : Unit_info.t -> Unit_info.Artifact.t
end