sig
  val init : unit -> unit
  val loadfile : string -> unit
  val loadfile_private : string -> unit
  val allow_only : string list -> unit
  val prohibit : string list -> unit
  val default_available_units : unit -> unit
  val allow_unsafe_modules : bool -> unit
  val add_interfaces : string list -> string list -> unit
  val add_available_units : (string * Digest.t) list -> unit
  val clear_available_units : unit -> unit
  type linking_error =
      Undefined_global of string
    | Unavailable_primitive of string
    | Uninitialized_global of string
  type error =
      Not_a_bytecode_file of string
    | Inconsistent_import of string
    | Unavailable_unit of string
    | Unsafe_file
    | Linking_error of string * Dynlink.linking_error
    | Corrupted_interface of string
    | File_not_found of string
    | Cannot_open_dll of string
  exception Error of Dynlink.error
  val error_message : Dynlink.error -> string
  val digest_interface : string -> string list -> Digest.t
end