sig   class printer :     Format.formatter ->     string ->     object       method hline : unit       method lines : unit       method paragraph : unit       method printf : ('a, Format.formatter, unit) Pervasives.format -> 'a       method section : string -> unit     end   val pp_file : message:string -> file:string -> unit   class type pattern =     object       method get_after : ?offset:int -> int -> string       method get_float : int -> float       method get_int : int -> int       method get_string : int -> string     end   val p_group : string -> string   val p_int : string   val p_float : string   val p_string : string   val p_until_space : string   val location : string -> int -> Lexing.position   type logs = [ `BOTH | `ERR | `OUT ]   class virtual command :     string ->     object       method add : string list -> unit       method add_float : name:string -> value:float -> unit       method add_int : name:string -> value:int -> unit       method add_list : name:string -> string list -> unit       method add_parameter : name:string -> (unit -> bool) -> unit       method add_positive : name:string -> value:int -> unit       method run :         ?echo:bool ->         ?logout:string -> ?logerr:string -> unit -> int Task.task       method set_command : string -> unit       method timeout : int -> unit       method validate_pattern :         ?logs:ProverTask.logs ->         ?repeat:bool -> Str.regexp -> (ProverTask.pattern -> unit) -> unit       method validate_time : (float -> unit) -> unit     end   val server : ?procs:int -> unit -> Task.server   val spawn :     ?monitor:('a option -> unit) -> ('a * bool Task.task) list -> unit end