sig val init : string -> unit val mark : string -> int -> unit val register_hooks : (unit -> unit) -> (unit -> unit) -> unit end