sig
  type t = {
    minor_words : float;
    promoted_words : float;
    major_words : float;
    minor_collections : int;
    major_collections : int;
    heap_words : int;
    heap_chunks : int;
    live_words : int;
    live_blocks : int;
    free_words : int;
    free_blocks : int;
    largest_free : int;
    fragments : int;
    compactions : int;
    top_heap_words : int;
    stack_size : int;
  }
  val stack_size : Gc.Stat.t -> int
  val top_heap_words : Gc.Stat.t -> int
  val compactions : Gc.Stat.t -> int
  val fragments : Gc.Stat.t -> int
  val largest_free : Gc.Stat.t -> int
  val free_blocks : Gc.Stat.t -> int
  val free_words : Gc.Stat.t -> int
  val live_blocks : Gc.Stat.t -> int
  val live_words : Gc.Stat.t -> int
  val heap_chunks : Gc.Stat.t -> int
  val heap_words : Gc.Stat.t -> int
  val major_collections : Gc.Stat.t -> int
  val minor_collections : Gc.Stat.t -> int
  val major_words : Gc.Stat.t -> float
  val promoted_words : Gc.Stat.t -> float
  val minor_words : Gc.Stat.t -> float
  module Fields :
    sig
      val names : string list
      val stack_size : (Gc.Stat.t, int) Fieldslib.Field.t
      val top_heap_words : (Gc.Stat.t, int) Fieldslib.Field.t
      val compactions : (Gc.Stat.t, int) Fieldslib.Field.t
      val fragments : (Gc.Stat.t, int) Fieldslib.Field.t
      val largest_free : (Gc.Stat.t, int) Fieldslib.Field.t
      val free_blocks : (Gc.Stat.t, int) Fieldslib.Field.t
      val free_words : (Gc.Stat.t, int) Fieldslib.Field.t
      val live_blocks : (Gc.Stat.t, int) Fieldslib.Field.t
      val live_words : (Gc.Stat.t, int) Fieldslib.Field.t
      val heap_chunks : (Gc.Stat.t, int) Fieldslib.Field.t
      val heap_words : (Gc.Stat.t, int) Fieldslib.Field.t
      val major_collections : (Gc.Stat.t, int) Fieldslib.Field.t
      val minor_collections : (Gc.Stat.t, int) Fieldslib.Field.t
      val major_words : (Gc.Stat.t, float) Fieldslib.Field.t
      val promoted_words : (Gc.Stat.t, float) Fieldslib.Field.t
      val minor_words : (Gc.Stat.t, float) Fieldslib.Field.t
      val fold :
        init:'acc__ ->
        minor_words:('acc__ ->
                     (Gc.Stat.t, float) Fieldslib.Field.t -> 'acc__) ->
        promoted_words:('acc__ ->
                        (Gc.Stat.t, float) Fieldslib.Field.t -> 'acc__) ->
        major_words:('acc__ ->
                     (Gc.Stat.t, float) Fieldslib.Field.t -> 'acc__) ->
        minor_collections:('acc__ ->
                           (Gc.Stat.t, int) Fieldslib.Field.t -> 'acc__) ->
        major_collections:('acc__ ->
                           (Gc.Stat.t, int) Fieldslib.Field.t -> 'acc__) ->
        heap_words:('acc__ ->
                    (Gc.Stat.t, int) Fieldslib.Field.t -> 'acc__) ->
        heap_chunks:('acc__ ->
                     (Gc.Stat.t, int) Fieldslib.Field.t -> 'acc__) ->
        live_words:('acc__ ->
                    (Gc.Stat.t, int) Fieldslib.Field.t -> 'acc__) ->
        live_blocks:('acc__ ->
                     (Gc.Stat.t, int) Fieldslib.Field.t -> 'acc__) ->
        free_words:('acc__ ->
                    (Gc.Stat.t, int) Fieldslib.Field.t -> 'acc__) ->
        free_blocks:('acc__ ->
                     (Gc.Stat.t, int) Fieldslib.Field.t -> 'acc__) ->
        largest_free:('acc__ ->
                      (Gc.Stat.t, int) Fieldslib.Field.t -> 'acc__) ->
        fragments:('acc__ ->
                   (Gc.Stat.t, int) Fieldslib.Field.t -> 'acc__) ->
        compactions:('acc__ ->
                     (Gc.Stat.t, int) Fieldslib.Field.t -> 'acc__) ->
        top_heap_words:('acc__ ->
                        (Gc.Stat.t, int) Fieldslib.Field.t -> 'acc__) ->
        stack_size:('acc__ ->
                    (Gc.Stat.t, int) Fieldslib.Field.t -> 'acc__) ->
        'acc__
      val make_creator :
        minor_words:((Gc.Stat.t, float) Fieldslib.Field.t ->
                     'compile_acc__ -> ('input__ -> float) * 'compile_acc__) ->
        promoted_words:((Gc.Stat.t, float) Fieldslib.Field.t ->
                        'compile_acc__ ->
                        ('input__ -> float) * 'compile_acc__) ->
        major_words:((Gc.Stat.t, float) Fieldslib.Field.t ->
                     'compile_acc__ -> ('input__ -> float) * 'compile_acc__) ->
        minor_collections:((Gc.Stat.t, int) Fieldslib.Field.t ->
                           'compile_acc__ ->
                           ('input__ -> int) * 'compile_acc__) ->
        major_collections:((Gc.Stat.t, int) Fieldslib.Field.t ->
                           'compile_acc__ ->
                           ('input__ -> int) * 'compile_acc__) ->
        heap_words:((Gc.Stat.t, int) Fieldslib.Field.t ->
                    'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
        heap_chunks:((Gc.Stat.t, int) Fieldslib.Field.t ->
                     'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
        live_words:((Gc.Stat.t, int) Fieldslib.Field.t ->
                    'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
        live_blocks:((Gc.Stat.t, int) Fieldslib.Field.t ->
                     'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
        free_words:((Gc.Stat.t, int) Fieldslib.Field.t ->
                    'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
        free_blocks:((Gc.Stat.t, int) Fieldslib.Field.t ->
                     'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
        largest_free:((Gc.Stat.t, int) Fieldslib.Field.t ->
                      'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
        fragments:((Gc.Stat.t, int) Fieldslib.Field.t ->
                   'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
        compactions:((Gc.Stat.t, int) Fieldslib.Field.t ->
                     'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
        top_heap_words:((Gc.Stat.t, int) Fieldslib.Field.t ->
                        'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
        stack_size:((Gc.Stat.t, int) Fieldslib.Field.t ->
                    'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
        'compile_acc__ -> ('input__ -> Gc.Stat.t) * 'compile_acc__
      val create :
        minor_words:float ->
        promoted_words:float ->
        major_words:float ->
        minor_collections:int ->
        major_collections:int ->
        heap_words:int ->
        heap_chunks:int ->
        live_words:int ->
        live_blocks:int ->
        free_words:int ->
        free_blocks:int ->
        largest_free:int ->
        fragments:int ->
        compactions:int ->
        top_heap_words:int -> stack_size:int -> Gc.Stat.t
      val iter :
        minor_words:((Gc.Stat.t, float) Fieldslib.Field.t -> unit) ->
        promoted_words:((Gc.Stat.t, float) Fieldslib.Field.t -> unit) ->
        major_words:((Gc.Stat.t, float) Fieldslib.Field.t -> unit) ->
        minor_collections:((Gc.Stat.t, int) Fieldslib.Field.t -> unit) ->
        major_collections:((Gc.Stat.t, int) Fieldslib.Field.t -> unit) ->
        heap_words:((Gc.Stat.t, int) Fieldslib.Field.t -> unit) ->
        heap_chunks:((Gc.Stat.t, int) Fieldslib.Field.t -> unit) ->
        live_words:((Gc.Stat.t, int) Fieldslib.Field.t -> unit) ->
        live_blocks:((Gc.Stat.t, int) Fieldslib.Field.t -> unit) ->
        free_words:((Gc.Stat.t, int) Fieldslib.Field.t -> unit) ->
        free_blocks:((Gc.Stat.t, int) Fieldslib.Field.t -> unit) ->
        largest_free:((Gc.Stat.t, int) Fieldslib.Field.t -> unit) ->
        fragments:((Gc.Stat.t, int) Fieldslib.Field.t -> unit) ->
        compactions:((Gc.Stat.t, int) Fieldslib.Field.t -> unit) ->
        top_heap_words:((Gc.Stat.t, int) Fieldslib.Field.t -> unit) ->
        stack_size:((Gc.Stat.t, int) Fieldslib.Field.t -> unit) -> unit
      val map :
        minor_words:((Gc.Stat.t, float) Fieldslib.Field.t -> float) ->
        promoted_words:((Gc.Stat.t, float) Fieldslib.Field.t -> float) ->
        major_words:((Gc.Stat.t, float) Fieldslib.Field.t -> float) ->
        minor_collections:((Gc.Stat.t, int) Fieldslib.Field.t -> int) ->
        major_collections:((Gc.Stat.t, int) Fieldslib.Field.t -> int) ->
        heap_words:((Gc.Stat.t, int) Fieldslib.Field.t -> int) ->
        heap_chunks:((Gc.Stat.t, int) Fieldslib.Field.t -> int) ->
        live_words:((Gc.Stat.t, int) Fieldslib.Field.t -> int) ->
        live_blocks:((Gc.Stat.t, int) Fieldslib.Field.t -> int) ->
        free_words:((Gc.Stat.t, int) Fieldslib.Field.t -> int) ->
        free_blocks:((Gc.Stat.t, int) Fieldslib.Field.t -> int) ->
        largest_free:((Gc.Stat.t, int) Fieldslib.Field.t -> int) ->
        fragments:((Gc.Stat.t, int) Fieldslib.Field.t -> int) ->
        compactions:((Gc.Stat.t, int) Fieldslib.Field.t -> int) ->
        top_heap_words:((Gc.Stat.t, int) Fieldslib.Field.t -> int) ->
        stack_size:((Gc.Stat.t, int) Fieldslib.Field.t -> int) ->
        Gc.Stat.t
      val map_poly : (Gc.Stat.t, 'x0) Fieldslib.Field.user -> 'x0 list
      val for_all :
        minor_words:((Gc.Stat.t, float) Fieldslib.Field.t -> bool) ->
        promoted_words:((Gc.Stat.t, float) Fieldslib.Field.t -> bool) ->
        major_words:((Gc.Stat.t, float) Fieldslib.Field.t -> bool) ->
        minor_collections:((Gc.Stat.t, int) Fieldslib.Field.t -> bool) ->
        major_collections:((Gc.Stat.t, int) Fieldslib.Field.t -> bool) ->
        heap_words:((Gc.Stat.t, int) Fieldslib.Field.t -> bool) ->
        heap_chunks:((Gc.Stat.t, int) Fieldslib.Field.t -> bool) ->
        live_words:((Gc.Stat.t, int) Fieldslib.Field.t -> bool) ->
        live_blocks:((Gc.Stat.t, int) Fieldslib.Field.t -> bool) ->
        free_words:((Gc.Stat.t, int) Fieldslib.Field.t -> bool) ->
        free_blocks:((Gc.Stat.t, int) Fieldslib.Field.t -> bool) ->
        largest_free:((Gc.Stat.t, int) Fieldslib.Field.t -> bool) ->
        fragments:((Gc.Stat.t, int) Fieldslib.Field.t -> bool) ->
        compactions:((Gc.Stat.t, int) Fieldslib.Field.t -> bool) ->
        top_heap_words:((Gc.Stat.t, int) Fieldslib.Field.t -> bool) ->
        stack_size:((Gc.Stat.t, int) Fieldslib.Field.t -> bool) -> bool
      val exists :
        minor_words:((Gc.Stat.t, float) Fieldslib.Field.t -> bool) ->
        promoted_words:((Gc.Stat.t, float) Fieldslib.Field.t -> bool) ->
        major_words:((Gc.Stat.t, float) Fieldslib.Field.t -> bool) ->
        minor_collections:((Gc.Stat.t, int) Fieldslib.Field.t -> bool) ->
        major_collections:((Gc.Stat.t, int) Fieldslib.Field.t -> bool) ->
        heap_words:((Gc.Stat.t, int) Fieldslib.Field.t -> bool) ->
        heap_chunks:((Gc.Stat.t, int) Fieldslib.Field.t -> bool) ->
        live_words:((Gc.Stat.t, int) Fieldslib.Field.t -> bool) ->
        live_blocks:((Gc.Stat.t, int) Fieldslib.Field.t -> bool) ->
        free_words:((Gc.Stat.t, int) Fieldslib.Field.t -> bool) ->
        free_blocks:((Gc.Stat.t, int) Fieldslib.Field.t -> bool) ->
        largest_free:((Gc.Stat.t, int) Fieldslib.Field.t -> bool) ->
        fragments:((Gc.Stat.t, int) Fieldslib.Field.t -> bool) ->
        compactions:((Gc.Stat.t, int) Fieldslib.Field.t -> bool) ->
        top_heap_words:((Gc.Stat.t, int) Fieldslib.Field.t -> bool) ->
        stack_size:((Gc.Stat.t, int) Fieldslib.Field.t -> bool) -> bool
      val to_list :
        minor_words:((Gc.Stat.t, float) Fieldslib.Field.t -> 'elem__) ->
        promoted_words:((Gc.Stat.t, float) Fieldslib.Field.t -> 'elem__) ->
        major_words:((Gc.Stat.t, float) Fieldslib.Field.t -> 'elem__) ->
        minor_collections:((Gc.Stat.t, int) Fieldslib.Field.t -> 'elem__) ->
        major_collections:((Gc.Stat.t, int) Fieldslib.Field.t -> 'elem__) ->
        heap_words:((Gc.Stat.t, int) Fieldslib.Field.t -> 'elem__) ->
        heap_chunks:((Gc.Stat.t, int) Fieldslib.Field.t -> 'elem__) ->
        live_words:((Gc.Stat.t, int) Fieldslib.Field.t -> 'elem__) ->
        live_blocks:((Gc.Stat.t, int) Fieldslib.Field.t -> 'elem__) ->
        free_words:((Gc.Stat.t, int) Fieldslib.Field.t -> 'elem__) ->
        free_blocks:((Gc.Stat.t, int) Fieldslib.Field.t -> 'elem__) ->
        largest_free:((Gc.Stat.t, int) Fieldslib.Field.t -> 'elem__) ->
        fragments:((Gc.Stat.t, int) Fieldslib.Field.t -> 'elem__) ->
        compactions:((Gc.Stat.t, int) Fieldslib.Field.t -> 'elem__) ->
        top_heap_words:((Gc.Stat.t, int) Fieldslib.Field.t -> 'elem__) ->
        stack_size:((Gc.Stat.t, int) Fieldslib.Field.t -> 'elem__) ->
        'elem__ list
      module Direct :
        sig
          val iter :
            Gc.Stat.t ->
            minor_words:((Gc.Stat.t, float) Fieldslib.Field.t ->
                         Gc.Stat.t -> float -> unit) ->
            promoted_words:((Gc.Stat.t, float) Fieldslib.Field.t ->
                            Gc.Stat.t -> float -> unit) ->
            major_words:((Gc.Stat.t, float) Fieldslib.Field.t ->
                         Gc.Stat.t -> float -> unit) ->
            minor_collections:((Gc.Stat.t, int) Fieldslib.Field.t ->
                               Gc.Stat.t -> int -> unit) ->
            major_collections:((Gc.Stat.t, int) Fieldslib.Field.t ->
                               Gc.Stat.t -> int -> unit) ->
            heap_words:((Gc.Stat.t, int) Fieldslib.Field.t ->
                        Gc.Stat.t -> int -> unit) ->
            heap_chunks:((Gc.Stat.t, int) Fieldslib.Field.t ->
                         Gc.Stat.t -> int -> unit) ->
            live_words:((Gc.Stat.t, int) Fieldslib.Field.t ->
                        Gc.Stat.t -> int -> unit) ->
            live_blocks:((Gc.Stat.t, int) Fieldslib.Field.t ->
                         Gc.Stat.t -> int -> unit) ->
            free_words:((Gc.Stat.t, int) Fieldslib.Field.t ->
                        Gc.Stat.t -> int -> unit) ->
            free_blocks:((Gc.Stat.t, int) Fieldslib.Field.t ->
                         Gc.Stat.t -> int -> unit) ->
            largest_free:((Gc.Stat.t, int) Fieldslib.Field.t ->
                          Gc.Stat.t -> int -> unit) ->
            fragments:((Gc.Stat.t, int) Fieldslib.Field.t ->
                       Gc.Stat.t -> int -> unit) ->
            compactions:((Gc.Stat.t, int) Fieldslib.Field.t ->
                         Gc.Stat.t -> int -> unit) ->
            top_heap_words:((Gc.Stat.t, int) Fieldslib.Field.t ->
                            Gc.Stat.t -> int -> unit) ->
            stack_size:((Gc.Stat.t, int) Fieldslib.Field.t ->
                        Gc.Stat.t -> int -> unit) ->
            unit
          val fold :
            Gc.Stat.t ->
            init:'acc__ ->
            minor_words:('acc__ ->
                         (Gc.Stat.t, float) Fieldslib.Field.t ->
                         Gc.Stat.t -> float -> 'acc__) ->
            promoted_words:('acc__ ->
                            (Gc.Stat.t, float) Fieldslib.Field.t ->
                            Gc.Stat.t -> float -> 'acc__) ->
            major_words:('acc__ ->
                         (Gc.Stat.t, float) Fieldslib.Field.t ->
                         Gc.Stat.t -> float -> 'acc__) ->
            minor_collections:('acc__ ->
                               (Gc.Stat.t, int) Fieldslib.Field.t ->
                               Gc.Stat.t -> int -> 'acc__) ->
            major_collections:('acc__ ->
                               (Gc.Stat.t, int) Fieldslib.Field.t ->
                               Gc.Stat.t -> int -> 'acc__) ->
            heap_words:('acc__ ->
                        (Gc.Stat.t, int) Fieldslib.Field.t ->
                        Gc.Stat.t -> int -> 'acc__) ->
            heap_chunks:('acc__ ->
                         (Gc.Stat.t, int) Fieldslib.Field.t ->
                         Gc.Stat.t -> int -> 'acc__) ->
            live_words:('acc__ ->
                        (Gc.Stat.t, int) Fieldslib.Field.t ->
                        Gc.Stat.t -> int -> 'acc__) ->
            live_blocks:('acc__ ->
                         (Gc.Stat.t, int) Fieldslib.Field.t ->
                         Gc.Stat.t -> int -> 'acc__) ->
            free_words:('acc__ ->
                        (Gc.Stat.t, int) Fieldslib.Field.t ->
                        Gc.Stat.t -> int -> 'acc__) ->
            free_blocks:('acc__ ->
                         (Gc.Stat.t, int) Fieldslib.Field.t ->
                         Gc.Stat.t -> int -> 'acc__) ->
            largest_free:('acc__ ->
                          (Gc.Stat.t, int) Fieldslib.Field.t ->
                          Gc.Stat.t -> int -> 'acc__) ->
            fragments:('acc__ ->
                       (Gc.Stat.t, int) Fieldslib.Field.t ->
                       Gc.Stat.t -> int -> 'acc__) ->
            compactions:('acc__ ->
                         (Gc.Stat.t, int) Fieldslib.Field.t ->
                         Gc.Stat.t -> int -> 'acc__) ->
            top_heap_words:('acc__ ->
                            (Gc.Stat.t, int) Fieldslib.Field.t ->
                            Gc.Stat.t -> int -> 'acc__) ->
            stack_size:('acc__ ->
                        (Gc.Stat.t, int) Fieldslib.Field.t ->
                        Gc.Stat.t -> int -> 'acc__) ->
            'acc__
        end
    end
  val t_of_sexp : Sexplib.Sexp.t -> Gc.Stat.t
  val sexp_of_t : Gc.Stat.t -> Sexplib.Sexp.t
  val bin_t : Gc.Stat.t Bin_prot.Type_class.t
  val bin_read_t : Gc.Stat.t Bin_prot.Read_ml.reader
  val bin_read_t_ : Gc.Stat.t Bin_prot.Unsafe_read_c.reader
  val bin_read_t__ : (int -> Gc.Stat.t) Bin_prot.Unsafe_read_c.reader
  val bin_reader_t : Gc.Stat.t Bin_prot.Type_class.reader
  val bin_size_t : Gc.Stat.t Bin_prot.Size.sizer
  val bin_write_t : Gc.Stat.t Bin_prot.Write_ml.writer
  val bin_write_t_ : Gc.Stat.t Bin_prot.Unsafe_write_c.writer
  val bin_writer_t : Gc.Stat.t Bin_prot.Type_class.writer
end