sig val do_next_step : unit -> unit val at_first_measurement : unit -> unit val at_last_measurement : unit -> unit val do_measurement : time:int -> (int -> unit) * (int -> unit) end