sig
  val names : string list
  val n_trades : (Bar.t, int) Fieldslib.Field.readonly_t
  val has_gaps : (Bar.t, bool) Fieldslib.Field.readonly_t
  val wap : (Bar.t, Price.t) Fieldslib.Field.readonly_t
  val vo : (Bar.t, Volume.t) Fieldslib.Field.readonly_t
  val cl : (Bar.t, Price.t) Fieldslib.Field.readonly_t
  val lo : (Bar.t, Price.t) Fieldslib.Field.readonly_t
  val hi : (Bar.t, Price.t) Fieldslib.Field.readonly_t
  val op : (Bar.t, Price.t) Fieldslib.Field.readonly_t
  val stamp : (Bar.t, Core.Std.Time.t) Fieldslib.Field.readonly_t
  val fold :
    init:'acc__ ->
    stamp:('acc__ ->
           (Bar.t, Core.Std.Time.t) Fieldslib.Field.readonly_t -> 'acc__) ->
    op:('acc__ -> (Bar.t, Price.t) Fieldslib.Field.readonly_t -> 'acc__) ->
    hi:('acc__ -> (Bar.t, Price.t) Fieldslib.Field.readonly_t -> 'acc__) ->
    lo:('acc__ -> (Bar.t, Price.t) Fieldslib.Field.readonly_t -> 'acc__) ->
    cl:('acc__ -> (Bar.t, Price.t) Fieldslib.Field.readonly_t -> 'acc__) ->
    vo:('acc__ -> (Bar.t, Volume.t) Fieldslib.Field.readonly_t -> 'acc__) ->
    wap:('acc__ -> (Bar.t, Price.t) Fieldslib.Field.readonly_t -> 'acc__) ->
    has_gaps:('acc__ -> (Bar.t, bool) Fieldslib.Field.readonly_t -> 'acc__) ->
    n_trades:('acc__ -> (Bar.t, int) Fieldslib.Field.readonly_t -> 'acc__) ->
    'acc__
  val iter :
    stamp:((Bar.t, Core.Std.Time.t) Fieldslib.Field.readonly_t -> unit) ->
    op:((Bar.t, Price.t) Fieldslib.Field.readonly_t -> unit) ->
    hi:((Bar.t, Price.t) Fieldslib.Field.readonly_t -> unit) ->
    lo:((Bar.t, Price.t) Fieldslib.Field.readonly_t -> unit) ->
    cl:((Bar.t, Price.t) Fieldslib.Field.readonly_t -> unit) ->
    vo:((Bar.t, Volume.t) Fieldslib.Field.readonly_t -> unit) ->
    wap:((Bar.t, Price.t) Fieldslib.Field.readonly_t -> unit) ->
    has_gaps:((Bar.t, bool) Fieldslib.Field.readonly_t -> unit) ->
    n_trades:((Bar.t, int) Fieldslib.Field.readonly_t -> unit) -> unit
  val for_all :
    stamp:((Bar.t, Core.Std.Time.t) Fieldslib.Field.readonly_t -> bool) ->
    op:((Bar.t, Price.t) Fieldslib.Field.readonly_t -> bool) ->
    hi:((Bar.t, Price.t) Fieldslib.Field.readonly_t -> bool) ->
    lo:((Bar.t, Price.t) Fieldslib.Field.readonly_t -> bool) ->
    cl:((Bar.t, Price.t) Fieldslib.Field.readonly_t -> bool) ->
    vo:((Bar.t, Volume.t) Fieldslib.Field.readonly_t -> bool) ->
    wap:((Bar.t, Price.t) Fieldslib.Field.readonly_t -> bool) ->
    has_gaps:((Bar.t, bool) Fieldslib.Field.readonly_t -> bool) ->
    n_trades:((Bar.t, int) Fieldslib.Field.readonly_t -> bool) -> bool
  val exists :
    stamp:((Bar.t, Core.Std.Time.t) Fieldslib.Field.readonly_t -> bool) ->
    op:((Bar.t, Price.t) Fieldslib.Field.readonly_t -> bool) ->
    hi:((Bar.t, Price.t) Fieldslib.Field.readonly_t -> bool) ->
    lo:((Bar.t, Price.t) Fieldslib.Field.readonly_t -> bool) ->
    cl:((Bar.t, Price.t) Fieldslib.Field.readonly_t -> bool) ->
    vo:((Bar.t, Volume.t) Fieldslib.Field.readonly_t -> bool) ->
    wap:((Bar.t, Price.t) Fieldslib.Field.readonly_t -> bool) ->
    has_gaps:((Bar.t, bool) Fieldslib.Field.readonly_t -> bool) ->
    n_trades:((Bar.t, int) Fieldslib.Field.readonly_t -> bool) -> bool
  val to_list :
    stamp:((Bar.t, Core.Std.Time.t) Fieldslib.Field.readonly_t -> 'elem__) ->
    op:((Bar.t, Price.t) Fieldslib.Field.readonly_t -> 'elem__) ->
    hi:((Bar.t, Price.t) Fieldslib.Field.readonly_t -> 'elem__) ->
    lo:((Bar.t, Price.t) Fieldslib.Field.readonly_t -> 'elem__) ->
    cl:((Bar.t, Price.t) Fieldslib.Field.readonly_t -> 'elem__) ->
    vo:((Bar.t, Volume.t) Fieldslib.Field.readonly_t -> 'elem__) ->
    wap:((Bar.t, Price.t) Fieldslib.Field.readonly_t -> 'elem__) ->
    has_gaps:((Bar.t, bool) Fieldslib.Field.readonly_t -> 'elem__) ->
    n_trades:((Bar.t, int) Fieldslib.Field.readonly_t -> 'elem__) ->
    'elem__ list
  val map_poly : ([< `Read ], Bar.t, 'x0) Fieldslib.Field.user -> 'x0 list
  module Direct :
    sig
      val iter :
        Bar.t ->
        stamp:((Bar.t, Core.Std.Time.t) Fieldslib.Field.readonly_t ->
               Bar.t -> Core.Std.Time.t -> unit) ->
        op:((Bar.t, Price.t) Fieldslib.Field.readonly_t ->
            Bar.t -> Price.t -> unit) ->
        hi:((Bar.t, Price.t) Fieldslib.Field.readonly_t ->
            Bar.t -> Price.t -> unit) ->
        lo:((Bar.t, Price.t) Fieldslib.Field.readonly_t ->
            Bar.t -> Price.t -> unit) ->
        cl:((Bar.t, Price.t) Fieldslib.Field.readonly_t ->
            Bar.t -> Price.t -> unit) ->
        vo:((Bar.t, Volume.t) Fieldslib.Field.readonly_t ->
            Bar.t -> Volume.t -> unit) ->
        wap:((Bar.t, Price.t) Fieldslib.Field.readonly_t ->
             Bar.t -> Price.t -> unit) ->
        has_gaps:((Bar.t, bool) Fieldslib.Field.readonly_t ->
                  Bar.t -> bool -> unit) ->
        n_trades:((Bar.t, int) Fieldslib.Field.readonly_t ->
                  Bar.t -> int -> unit) ->
        unit
      val fold :
        Bar.t ->
        init:'acc__ ->
        stamp:('acc__ ->
               (Bar.t, Core.Std.Time.t) Fieldslib.Field.readonly_t ->
               Bar.t -> Core.Std.Time.t -> 'acc__) ->
        op:('acc__ ->
            (Bar.t, Price.t) Fieldslib.Field.readonly_t ->
            Bar.t -> Price.t -> 'acc__) ->
        hi:('acc__ ->
            (Bar.t, Price.t) Fieldslib.Field.readonly_t ->
            Bar.t -> Price.t -> 'acc__) ->
        lo:('acc__ ->
            (Bar.t, Price.t) Fieldslib.Field.readonly_t ->
            Bar.t -> Price.t -> 'acc__) ->
        cl:('acc__ ->
            (Bar.t, Price.t) Fieldslib.Field.readonly_t ->
            Bar.t -> Price.t -> 'acc__) ->
        vo:('acc__ ->
            (Bar.t, Volume.t) Fieldslib.Field.readonly_t ->
            Bar.t -> Volume.t -> 'acc__) ->
        wap:('acc__ ->
             (Bar.t, Price.t) Fieldslib.Field.readonly_t ->
             Bar.t -> Price.t -> 'acc__) ->
        has_gaps:('acc__ ->
                  (Bar.t, bool) Fieldslib.Field.readonly_t ->
                  Bar.t -> bool -> 'acc__) ->
        n_trades:('acc__ ->
                  (Bar.t, int) Fieldslib.Field.readonly_t ->
                  Bar.t -> int -> 'acc__) ->
        'acc__
    end
end