sig
  val init : string -> unit
  val init_with_array : string -> int array -> bool -> unit
  val mark : string -> int -> unit
  val mark_array : string -> int array -> unit
  val register_hooks : (unit -> unit) -> (unit -> unit) -> unit
  val get_hooks : unit -> (unit -> unit) * (unit -> unit)
end