(** Errors *)

(** The type of loggers. Subject to change. *)
type logger = string -> unit

(** Default error logger, writes the string to stderr and flushes. *)
val default : logger

(** The current error logger, set to [default] upon startup. *)
val logger : logger ref

(** If set (default clear), identical errors in sequence will be supressed. *)
val suppress_adjacent_duplicates : bool ref

(** Log a string. *)
val log : logger

(** Log a formatted string, similar to printf. *)
val logf : ('a -> string, unit, string) format -> 'a -> unit
