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 Pervasives.ref -> int Pervasives.ref
  val observe_float_ref :
    ?period:int -> string -> float Pervasives.ref -> float Pervasives.ref
  val observe_bool_ref :
    ?period:int -> string -> bool Pervasives.ref -> bool Pervasives.ref
  val observe_string_ref :
    ?period:int -> string -> string Pervasives.ref -> string Pervasives.ref
end