type position = {filename : string;line : int;
}type log_severity = [ | `Error| `Info| `Warning
]type !'result test_event = | EStart| EEnd| EResult of 'result| ELog of log_severity * string| ELogRaw of string
type (!'path, !'result) result_full = 'path * 'result * position optiontype (!'path, !'result) global_event = | GConf of string * string| GLog of log_severity * string| GStart| GEnd| GResults of float * ('path, 'result) result_full list * int
type (!'path, !'result) log_event_t = | GlobalEvent of ('path, 'result) global_event| TestEvent of 'path * 'result test_event
type (!'path, !'result) log_event = {shard : string;timestamp : float;event : ('path, 'result) log_event_t;
}type (!'path, !'result) logger = {lshard : string;fwrite : ('path, 'result) log_event -> unit;fpos : unit -> position option;fclose : unit -> unit;
}val shard_default : stringval null_logger : ('a, 'b) loggerval fun_logger :
(('a, 'b) log_event -> unit) ->
(unit -> unit) ->
('a, 'b) loggerval set_shard : string -> ('a, 'b) logger -> ('a, 'b) loggerval infof : ('a, 'b) logger -> ('c, unit, string, unit) format4 -> 'cval warningf : ('a, 'b) logger -> ('c, unit, string, unit) format4 -> 'cval errorf : ('a, 'b) logger -> ('c, unit, string, unit) format4 -> 'cval close : ('a, 'b) logger -> unitmodule Test : sig ... end