# Functor Consistbl.Make

    module Make: functor (Module_name : sig

    type t

    module Set: Set.S  with type elt = t

    module Map: Map.S  with type key = t

    module Tbl: Hashtbl.S  with type key = t

    val compare : t -> t -> int

    end) -> sig .. end

Parameters: |
`Module_name` | : | `sig type t module Set : Set.S with type elt = t module Map : Map.S with type key = t module Tbl : Hashtbl.S with type key = t val compare : t -> t -> int end`

    type t

    val create : unit -> t

    val clear : t -> unit

    val check : t ->
           Module_name.t -> Digest.BLAKE128.t -> Misc.filepath -> unit

    val check_noadd : t ->
           Module_name.t -> Digest.BLAKE128.t -> Misc.filepath -> unit

    val source : t -> Module_name.t -> Misc.filepath

    val extract : Module_name.t list ->
           t -> (Module_name.t * Digest.BLAKE128.t option) list

    val extract_map : Module_name.Set.t ->
           t -> Digest.BLAKE128.t option Module_name.Map.t

    val filter : (Module_name.t -> bool) -> t -> unit

    exception Inconsistency of {

    unit_name : Module_name.t;

    inconsistent_source : string;

    original_source : string;

    }

    exception Not_available of Module_name.t