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