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