sig
  val observe : ?period:int -> string -> (unit -> Protocol.variant) -> unit
end