sig
  type t =
      Approximation of string
    | Imprecision of string
    | Costly of string
    | Unsoundness of string
  type emitter
  val register : string -> Lattice_messages.emitter
  val emitter_name : Lattice_messages.emitter -> string
  val emit : Lattice_messages.emitter -> Lattice_messages.t -> unit
  val emit_imprecision : Lattice_messages.emitter -> string -> unit
  val emit_approximation :
    Lattice_messages.emitter ->
    ('a, Format.formatter, unit) Pervasives.format -> 'a
  val emit_costly :
    Lattice_messages.emitter ->
    ('a, Format.formatter, unit) Pervasives.format -> 'a
  val message_destination :
    (Lattice_messages.emitter -> Lattice_messages.t -> unit) Pervasives.ref
end