sig
  module Point :
    sig
      type t
      val create : string -> t
      val kill : t -> unit
      val observe : t -> unit
      val observe_calls : string -> ('-> '-> 'c) -> '-> '-> 'c
      val observe_calls2 : string -> ('-> '-> 'c) -> '-> '-> 'c
      val observe_calls_rec : string -> (('-> 'b) -> '-> 'b) -> '-> 'b
      val observe_calls_rec2 :
        string -> (('-> '-> 'c) -> '-> '-> 'c) -> '-> '-> 'c
    end
  module Tag :
    sig
      module WeakHash :
        sig
          type t
          type data
          val create : int -> t
          val clear : t -> unit
          val merge : t -> data -> data
          val add : t -> data -> unit
          val remove : t -> data -> unit
          val find : t -> data -> data
          val find_all : t -> data -> data list
          val mem : t -> data -> bool
          val iter : (data -> unit) -> t -> unit
          val fold : (data -> '-> 'a) -> t -> '-> 'a
          val count : t -> int
          val stats : t -> int * int * int * int * int * int
        end
      type t
      val create :
        ?size:bool ->
        ?count:bool ->
        ?fct_size:(WeakHash.t -> Int64.t) -> ?period:int -> string -> t
      val kill : t -> unit
      val set_period : t -> int -> unit
      val mark : t -> '-> 'a
    end
  module Time :
    sig
      type t
      val elapsed_time : unit -> float
      val create : string -> t
      val kill : t -> unit
      val start : t -> unit
      val stop : t -> unit
      val time : string -> ('-> 'b) -> '-> 'b
    end
  module Value :
    sig
      val observe_int_fct :
        ?weak:bool -> ?period:int -> string -> (unit -> int) -> unit
      val observe_int : ?weak:bool -> ?period:int -> string -> int -> unit
      val observe_float_fct :
        ?weak:bool -> ?period:int -> string -> (unit -> float) -> unit
      val observe_float :
        ?weak:bool -> ?period:int -> string -> float -> unit
      val observe_bool_fct :
        ?weak:bool -> ?period:int -> string -> (unit -> bool) -> unit
      val observe_bool : ?weak:bool -> ?period:int -> string -> bool -> unit
      val observe_string_fct :
        ?weak:bool -> ?period:int -> string -> (unit -> string) -> unit
      val observe_string :
        ?weak:bool -> ?period:int -> string -> string -> unit
      val observe_int_ref : ?period:int -> string -> int ref -> int ref
      val observe_float_ref : ?period:int -> string -> float ref -> float ref
      val observe_bool_ref : ?period:int -> string -> bool ref -> bool ref
      val observe_string_ref :
        ?period:int -> string -> string ref -> string ref
    end
  module Tree :
    sig
      val observe :
        ?period:int -> string -> (unit -> Protocol.variant) -> unit
    end
  module Hashtable :
    sig type 'a t val observe : ?period:int -> string -> '-> 'end
  val to_send : unit -> string
  val declare_tags : unit -> string
  val log : ('a, Format.formatter, unit, unit) format4 -> 'a
  val wait_for_connected_clients : int -> unit
  val wait_for_killed_clients : unit -> unit
  val set_nb_clients : int -> unit
  val yield : unit -> unit
  val send_now : unit -> unit
  val init : unit -> unit
end