sig
  type allocation_source =
    Stdlib.Gc.Memprof.allocation_source =
      Normal
    | Marshal
    | Custom
  type allocation =
    Stdlib.Gc.Memprof.allocation = private {
    n_samples : int;
    size : int;
    source : BatGc.Memprof.allocation_source;
    callstack : Stdlib.Printexc.raw_backtrace;
  }
  type ('minor, 'major) tracker =
    ('minor, 'major) Stdlib.Gc.Memprof.tracker = {
    alloc_minor : BatGc.Memprof.allocation -> 'minor option;
    alloc_major : BatGc.Memprof.allocation -> 'major option;
    promote : 'minor -> 'major option;
    dealloc_minor : 'minor -> unit;
    dealloc_major : 'major -> unit;
  }
  val null_tracker : ('minor, 'major) BatGc.Memprof.tracker
  val start :
    sampling_rate:float ->
    ?callstack_size:int -> ('minor, 'major) BatGc.Memprof.tracker -> unit
  val stop : unit -> unit
end