sig
  type t
  val create : string -> Monitor_sig.Monitor.Point.t
  val kill : Monitor_sig.Monitor.Point.t -> unit
  val observe : Monitor_sig.Monitor.Point.t -> unit
  val observe_calls : string -> ('a -> 'b -> 'c) -> 'a -> 'b -> 'c
  val observe_calls2 : string -> ('a -> 'b -> 'c) -> 'a -> 'b -> 'c
  val observe_calls_rec : string -> (('a -> 'b) -> 'a -> 'b) -> 'a -> 'b
  val observe_calls_rec2 :
    string -> (('a -> 'b -> 'c) -> 'a -> 'b -> 'c) -> 'a -> 'b -> 'c
end