Module Melange_compiler_libs.Persistent_env

module Consistbl: module type of struct include Consistbl.Make(Misc.Stdlib.String) end;
type error =
  1. | Illegal_renaming(Misc.modname, Misc.modname, Misc.filepath)
  2. | Inconsistent_import(Misc.modname, Misc.filepath, Misc.filepath)
  3. | Need_recursive_types(Misc.modname)
;
exception Error(error);
let report_error: Stdlib.Format.formatter => error => unit;
module Persistent_signature: { ... };
type can_load_cmis =
  1. | Can_load_cmis
  2. | Cannot_load_cmis(Lazy_backtrack.log)
;
type t('a);
let empty: unit => t('a);
let clear: t('a) => unit;
let clear_missing: t('a) => unit;
let fold: t('a) => (Misc.modname => 'a => 'b => 'b) => 'b => 'b;
let read: t('a) => (Persistent_signature.t => 'a) => Misc.modname => Misc.filepath => 'a;
let find: t('a) => (Persistent_signature.t => 'a) => Misc.modname => 'a;
let find_in_cache: t('a) => Misc.modname => option('a);
let check: t('a) => (Persistent_signature.t => 'a) => loc:Location.t => Misc.modname => unit;
let looked_up: t('a) => Misc.modname => bool;
let is_imported: t('a) => Misc.modname => bool;
let is_imported_opaque: t('a) => Misc.modname => bool;
let register_import_as_opaque: t('a) => Misc.modname => unit;
let save_cmi: ?check_exists:unit => t('a) => Persistent_signature.t => 'a => unit;
let can_load_cmis: t('a) => can_load_cmis;
let set_can_load_cmis: t('a) => can_load_cmis => unit;
let without_cmis: t('a) => ('b => 'c) => 'b => 'c;
let import_crcs: t('a) => source:Misc.filepath => Misc.crcs => unit;
let imports: t('a) => Misc.crcs;
let crc_of_unit: t('a) => (Persistent_signature.t => 'a) => Misc.modname => Stdlib.Digest.t;
let add_delayed_check_forward: Stdlib.ref(((unit => unit) => unit));