sig type 'a t val observe : ?period:int -> string -> '-> 'end