module Gc: Core_gcmodule Stat:sig..end
typestat =Stat.t
stat record.
   The total amount of memory allocated by the program since it was started
   is (in words) minor_words + major_words - promoted_words.  Multiply by
   the word size (4 on a 32-bit machine, 8 on a 64-bit machine) to get
   the number of bytes.
module Control:sig..end
typecontrol =Control.t
control record.
    Note that these parameters can also be initialised
    by setting the OCAMLRUNPARAM environment variable.
    See the documentation of ocamlrun.val stat : unit -> statstat record.  This function examines every heap block to get the
   statistics.val quick_stat : unit -> statstat except that live_words, live_blocks, free_words,
    free_blocks, largest_free, and fragments are set to 0.  This
    function is much faster than stat because it does not need to go
    through the heap.val counters : unit -> float * float * float(minor_words, promoted_words, major_words).  This function
    is as fast at quick_stat.val minor_words : unit -> int(Gc.quick_stat ()).Stat.f, avoiding any
    allocation (of the stat record or a float).  On 32-bit machines the int may
    overflow.val major_words : unit -> intval promoted_words : unit -> intval minor_collections : unit -> intval major_collections : unit -> intval heap_words : unit -> intval heap_chunks : unit -> intval compactions : unit -> intval top_heap_words : unit -> intval get : unit -> controlcontrol record.val set : control -> unitset r changes the GC parameters according to the control record r.
    The normal usage is:
      Gc.set { (Gc.get()) with Gc.Control.verbose = 0x00d }val minor : unit -> unitval major_slice : int -> intval major : unit -> unitval full_major : unit -> unitval compact : unit -> unitval print_stat : Pervasives.out_channel -> unitval allocated_bytes : unit -> floatfloat to avoid overflow problems
   with int on 32-bit machines.type alarm 
val create_alarm : (unit -> unit) -> alarmcreate_alarm f will arrange for f to be called at the end of each
   major GC cycle, starting with the current cycle or the next one.
   A value of type alarm is returned that you can
   use to call delete_alarm.val delete_alarm : alarm -> unitdelete_alarm a will stop the calls to the function associated
   to a.  Calling delete_alarm a again has no effect.val tune : ?logger:(string -> unit) ->
       ?minor_heap_size:int ->
       ?major_heap_increment:int ->
       ?space_overhead:int ->
       ?verbose:int ->
       ?max_overhead:int ->
       ?stack_limit:int -> ?allocation_policy:int -> unit -> unit