sig
  val iter :
    Raw_bar.t ->
    stamp:(([< `Read | `Set_and_create ], Raw_bar.t, Core.Std.Time.t)
           Fieldslib.Field.t_with_perm -> Raw_bar.t -> Core.Std.Time.t -> 'a) ->
    op:(([< `Read | `Set_and_create ], Raw_bar.t, Price.t)
        Fieldslib.Field.t_with_perm -> Raw_bar.t -> Price.t -> 'b) ->
    hi:(([< `Read | `Set_and_create ], Raw_bar.t, Price.t)
        Fieldslib.Field.t_with_perm -> Raw_bar.t -> Price.t -> 'c) ->
    lo:(([< `Read | `Set_and_create ], Raw_bar.t, Price.t)
        Fieldslib.Field.t_with_perm -> Raw_bar.t -> Price.t -> 'd) ->
    cl:(([< `Read | `Set_and_create ], Raw_bar.t, Price.t)
        Fieldslib.Field.t_with_perm -> Raw_bar.t -> Price.t -> 'e) ->
    vo:(([< `Read | `Set_and_create ], Raw_bar.t, Volume.t)
        Fieldslib.Field.t_with_perm -> Raw_bar.t -> Volume.t -> 'f) ->
    wap:(([< `Read | `Set_and_create ], Raw_bar.t, Price.t)
         Fieldslib.Field.t_with_perm -> Raw_bar.t -> Price.t -> 'g) ->
    has_gaps:(([< `Read | `Set_and_create ], Raw_bar.t, bool)
              Fieldslib.Field.t_with_perm -> Raw_bar.t -> bool -> 'h) ->
    n_trades:(([< `Read | `Set_and_create ], Raw_bar.t, int)
              Fieldslib.Field.t_with_perm -> Raw_bar.t -> int -> 'i) ->
    'i
  val fold :
    Raw_bar.t ->
    init:'->
    stamp:('->
           ([< `Read | `Set_and_create ], Raw_bar.t, Core.Std.Time.t)
           Fieldslib.Field.t_with_perm -> Raw_bar.t -> Core.Std.Time.t -> 'b) ->
    op:('->
        ([< `Read | `Set_and_create ], Raw_bar.t, Price.t)
        Fieldslib.Field.t_with_perm -> Raw_bar.t -> Price.t -> 'c) ->
    hi:('->
        ([< `Read | `Set_and_create ], Raw_bar.t, Price.t)
        Fieldslib.Field.t_with_perm -> Raw_bar.t -> Price.t -> 'd) ->
    lo:('->
        ([< `Read | `Set_and_create ], Raw_bar.t, Price.t)
        Fieldslib.Field.t_with_perm -> Raw_bar.t -> Price.t -> 'e) ->
    cl:('->
        ([< `Read | `Set_and_create ], Raw_bar.t, Price.t)
        Fieldslib.Field.t_with_perm -> Raw_bar.t -> Price.t -> 'f) ->
    vo:('->
        ([< `Read | `Set_and_create ], Raw_bar.t, Volume.t)
        Fieldslib.Field.t_with_perm -> Raw_bar.t -> Volume.t -> 'g) ->
    wap:('->
         ([< `Read | `Set_and_create ], Raw_bar.t, Price.t)
         Fieldslib.Field.t_with_perm -> Raw_bar.t -> Price.t -> 'h) ->
    has_gaps:('->
              ([< `Read | `Set_and_create ], Raw_bar.t, bool)
              Fieldslib.Field.t_with_perm -> Raw_bar.t -> bool -> 'i) ->
    n_trades:('->
              ([< `Read | `Set_and_create ], Raw_bar.t, int)
              Fieldslib.Field.t_with_perm -> Raw_bar.t -> int -> 'j) ->
    'j
end