sig
  type t = private {
    start : Core.Std.Time.t;
    stop : Core.Std.Time.t;
    num_bars : int;
    bars : Bar.t list;
  }
  val bars : Response.History.t -> Bar.t list
  val num_bars : Response.History.t -> int
  val stop : Response.History.t -> Core.Std.Time.t
  val start : Response.History.t -> Core.Std.Time.t
  module Fields :
    sig
      val names : string list
      val bars : (Response.History.t, Bar.t list) Fieldslib.Field.readonly_t
      val num_bars : (Response.History.t, int) Fieldslib.Field.readonly_t
      val stop :
        (Response.History.t, Core.Std.Time.t) Fieldslib.Field.readonly_t
      val start :
        (Response.History.t, Core.Std.Time.t) Fieldslib.Field.readonly_t
      val fold :
        init:'acc__ ->
        start:('acc__ ->
               (Response.History.t, Core.Std.Time.t)
               Fieldslib.Field.readonly_t -> 'acc__) ->
        stop:('acc__ ->
              (Response.History.t, Core.Std.Time.t)
              Fieldslib.Field.readonly_t -> 'acc__) ->
        num_bars:('acc__ ->
                  (Response.History.t, int) Fieldslib.Field.readonly_t ->
                  'acc__) ->
        bars:('acc__ ->
              (Response.History.t, Bar.t list) Fieldslib.Field.readonly_t ->
              'acc__) ->
        'acc__
      val iter :
        start:((Response.History.t, Core.Std.Time.t)
               Fieldslib.Field.readonly_t -> unit) ->
        stop:((Response.History.t, Core.Std.Time.t)
              Fieldslib.Field.readonly_t -> unit) ->
        num_bars:((Response.History.t, int) Fieldslib.Field.readonly_t ->
                  unit) ->
        bars:((Response.History.t, Bar.t list) Fieldslib.Field.readonly_t ->
              unit) ->
        unit
      val for_all :
        start:((Response.History.t, Core.Std.Time.t)
               Fieldslib.Field.readonly_t -> bool) ->
        stop:((Response.History.t, Core.Std.Time.t)
              Fieldslib.Field.readonly_t -> bool) ->
        num_bars:((Response.History.t, int) Fieldslib.Field.readonly_t ->
                  bool) ->
        bars:((Response.History.t, Bar.t list) Fieldslib.Field.readonly_t ->
              bool) ->
        bool
      val exists :
        start:((Response.History.t, Core.Std.Time.t)
               Fieldslib.Field.readonly_t -> bool) ->
        stop:((Response.History.t, Core.Std.Time.t)
              Fieldslib.Field.readonly_t -> bool) ->
        num_bars:((Response.History.t, int) Fieldslib.Field.readonly_t ->
                  bool) ->
        bars:((Response.History.t, Bar.t list) Fieldslib.Field.readonly_t ->
              bool) ->
        bool
      val to_list :
        start:((Response.History.t, Core.Std.Time.t)
               Fieldslib.Field.readonly_t -> 'elem__) ->
        stop:((Response.History.t, Core.Std.Time.t)
              Fieldslib.Field.readonly_t -> 'elem__) ->
        num_bars:((Response.History.t, int) Fieldslib.Field.readonly_t ->
                  'elem__) ->
        bars:((Response.History.t, Bar.t list) Fieldslib.Field.readonly_t ->
              'elem__) ->
        'elem__ list
      val map_poly :
        ([< `Read ], Response.History.t, 'x0) Fieldslib.Field.user ->
        'x0 list
      module Direct :
        sig
          val iter :
            Response.History.t ->
            start:((Response.History.t, Core.Std.Time.t)
                   Fieldslib.Field.readonly_t ->
                   Response.History.t -> Core.Std.Time.t -> unit) ->
            stop:((Response.History.t, Core.Std.Time.t)
                  Fieldslib.Field.readonly_t ->
                  Response.History.t -> Core.Std.Time.t -> unit) ->
            num_bars:((Response.History.t, int) Fieldslib.Field.readonly_t ->
                      Response.History.t -> int -> unit) ->
            bars:((Response.History.t, Bar.t list) Fieldslib.Field.readonly_t ->
                  Response.History.t -> Bar.t list -> unit) ->
            unit
          val fold :
            Response.History.t ->
            init:'acc__ ->
            start:('acc__ ->
                   (Response.History.t, Core.Std.Time.t)
                   Fieldslib.Field.readonly_t ->
                   Response.History.t -> Core.Std.Time.t -> 'acc__) ->
            stop:('acc__ ->
                  (Response.History.t, Core.Std.Time.t)
                  Fieldslib.Field.readonly_t ->
                  Response.History.t -> Core.Std.Time.t -> 'acc__) ->
            num_bars:('acc__ ->
                      (Response.History.t, int) Fieldslib.Field.readonly_t ->
                      Response.History.t -> int -> 'acc__) ->
            bars:('acc__ ->
                  (Response.History.t, Bar.t list) Fieldslib.Field.readonly_t ->
                  Response.History.t -> Bar.t list -> 'acc__) ->
            'acc__
        end
    end
  val unpickler : t Tws_prot.Unpickler.t
  val pickler : t Tws_prot.Pickler.t Core.Std.Only_in_test.t
  val ( = ) : t -> t -> bool
  val create : bars:Bar.t list -> Response.History.t
  module Data_frame :
    sig
      type t = private {
        stamps : Core.Std.Time.t array;
        op : float array;
        hi : float array;
        lo : float array;
        cl : float array;
        vo : int array;
      }
      val vo : Response.History.Data_frame.t -> int array
      val cl : Response.History.Data_frame.t -> float array
      val lo : Response.History.Data_frame.t -> float array
      val hi : Response.History.Data_frame.t -> float array
      val op : Response.History.Data_frame.t -> float array
      val stamps : Response.History.Data_frame.t -> Core.Std.Time.t array
      module Fields :
        sig
          val names : string list
          val vo :
            (Response.History.Data_frame.t, int array)
            Fieldslib.Field.readonly_t
          val cl :
            (Response.History.Data_frame.t, float array)
            Fieldslib.Field.readonly_t
          val lo :
            (Response.History.Data_frame.t, float array)
            Fieldslib.Field.readonly_t
          val hi :
            (Response.History.Data_frame.t, float array)
            Fieldslib.Field.readonly_t
          val op :
            (Response.History.Data_frame.t, float array)
            Fieldslib.Field.readonly_t
          val stamps :
            (Response.History.Data_frame.t, Core.Std.Time.t array)
            Fieldslib.Field.readonly_t
          val fold :
            init:'acc__ ->
            stamps:('acc__ ->
                    (Response.History.Data_frame.t, Core.Std.Time.t array)
                    Fieldslib.Field.readonly_t -> 'acc__) ->
            op:('acc__ ->
                (Response.History.Data_frame.t, float array)
                Fieldslib.Field.readonly_t -> 'acc__) ->
            hi:('acc__ ->
                (Response.History.Data_frame.t, float array)
                Fieldslib.Field.readonly_t -> 'acc__) ->
            lo:('acc__ ->
                (Response.History.Data_frame.t, float array)
                Fieldslib.Field.readonly_t -> 'acc__) ->
            cl:('acc__ ->
                (Response.History.Data_frame.t, float array)
                Fieldslib.Field.readonly_t -> 'acc__) ->
            vo:('acc__ ->
                (Response.History.Data_frame.t, int array)
                Fieldslib.Field.readonly_t -> 'acc__) ->
            'acc__
          val iter :
            stamps:((Response.History.Data_frame.t, Core.Std.Time.t array)
                    Fieldslib.Field.readonly_t -> unit) ->
            op:((Response.History.Data_frame.t, float array)
                Fieldslib.Field.readonly_t -> unit) ->
            hi:((Response.History.Data_frame.t, float array)
                Fieldslib.Field.readonly_t -> unit) ->
            lo:((Response.History.Data_frame.t, float array)
                Fieldslib.Field.readonly_t -> unit) ->
            cl:((Response.History.Data_frame.t, float array)
                Fieldslib.Field.readonly_t -> unit) ->
            vo:((Response.History.Data_frame.t, int array)
                Fieldslib.Field.readonly_t -> unit) ->
            unit
          val for_all :
            stamps:((Response.History.Data_frame.t, Core.Std.Time.t array)
                    Fieldslib.Field.readonly_t -> bool) ->
            op:((Response.History.Data_frame.t, float array)
                Fieldslib.Field.readonly_t -> bool) ->
            hi:((Response.History.Data_frame.t, float array)
                Fieldslib.Field.readonly_t -> bool) ->
            lo:((Response.History.Data_frame.t, float array)
                Fieldslib.Field.readonly_t -> bool) ->
            cl:((Response.History.Data_frame.t, float array)
                Fieldslib.Field.readonly_t -> bool) ->
            vo:((Response.History.Data_frame.t, int array)
                Fieldslib.Field.readonly_t -> bool) ->
            bool
          val exists :
            stamps:((Response.History.Data_frame.t, Core.Std.Time.t array)
                    Fieldslib.Field.readonly_t -> bool) ->
            op:((Response.History.Data_frame.t, float array)
                Fieldslib.Field.readonly_t -> bool) ->
            hi:((Response.History.Data_frame.t, float array)
                Fieldslib.Field.readonly_t -> bool) ->
            lo:((Response.History.Data_frame.t, float array)
                Fieldslib.Field.readonly_t -> bool) ->
            cl:((Response.History.Data_frame.t, float array)
                Fieldslib.Field.readonly_t -> bool) ->
            vo:((Response.History.Data_frame.t, int array)
                Fieldslib.Field.readonly_t -> bool) ->
            bool
          val to_list :
            stamps:((Response.History.Data_frame.t, Core.Std.Time.t array)
                    Fieldslib.Field.readonly_t -> 'elem__) ->
            op:((Response.History.Data_frame.t, float array)
                Fieldslib.Field.readonly_t -> 'elem__) ->
            hi:((Response.History.Data_frame.t, float array)
                Fieldslib.Field.readonly_t -> 'elem__) ->
            lo:((Response.History.Data_frame.t, float array)
                Fieldslib.Field.readonly_t -> 'elem__) ->
            cl:((Response.History.Data_frame.t, float array)
                Fieldslib.Field.readonly_t -> 'elem__) ->
            vo:((Response.History.Data_frame.t, int array)
                Fieldslib.Field.readonly_t -> 'elem__) ->
            'elem__ list
          val map_poly :
            ([< `Read ], Response.History.Data_frame.t, 'x0)
            Fieldslib.Field.user -> 'x0 list
          module Direct :
            sig
              val iter :
                Response.History.Data_frame.t ->
                stamps:((Response.History.Data_frame.t,
                         Core.Std.Time.t array)
                        Fieldslib.Field.readonly_t ->
                        Response.History.Data_frame.t ->
                        Core.Std.Time.t array -> unit) ->
                op:((Response.History.Data_frame.t, float array)
                    Fieldslib.Field.readonly_t ->
                    Response.History.Data_frame.t -> float array -> unit) ->
                hi:((Response.History.Data_frame.t, float array)
                    Fieldslib.Field.readonly_t ->
                    Response.History.Data_frame.t -> float array -> unit) ->
                lo:((Response.History.Data_frame.t, float array)
                    Fieldslib.Field.readonly_t ->
                    Response.History.Data_frame.t -> float array -> unit) ->
                cl:((Response.History.Data_frame.t, float array)
                    Fieldslib.Field.readonly_t ->
                    Response.History.Data_frame.t -> float array -> unit) ->
                vo:((Response.History.Data_frame.t, int array)
                    Fieldslib.Field.readonly_t ->
                    Response.History.Data_frame.t -> int array -> unit) ->
                unit
              val fold :
                Response.History.Data_frame.t ->
                init:'acc__ ->
                stamps:('acc__ ->
                        (Response.History.Data_frame.t,
                         Core.Std.Time.t array)
                        Fieldslib.Field.readonly_t ->
                        Response.History.Data_frame.t ->
                        Core.Std.Time.t array -> 'acc__) ->
                op:('acc__ ->
                    (Response.History.Data_frame.t, float array)
                    Fieldslib.Field.readonly_t ->
                    Response.History.Data_frame.t -> float array -> 'acc__) ->
                hi:('acc__ ->
                    (Response.History.Data_frame.t, float array)
                    Fieldslib.Field.readonly_t ->
                    Response.History.Data_frame.t -> float array -> 'acc__) ->
                lo:('acc__ ->
                    (Response.History.Data_frame.t, float array)
                    Fieldslib.Field.readonly_t ->
                    Response.History.Data_frame.t -> float array -> 'acc__) ->
                cl:('acc__ ->
                    (Response.History.Data_frame.t, float array)
                    Fieldslib.Field.readonly_t ->
                    Response.History.Data_frame.t -> float array -> 'acc__) ->
                vo:('acc__ ->
                    (Response.History.Data_frame.t, int array)
                    Fieldslib.Field.readonly_t ->
                    Response.History.Data_frame.t -> int array -> 'acc__) ->
                'acc__
            end
        end
      val t_of_sexp : Sexplib.Sexp.t -> Response.History.Data_frame.t
      val sexp_of_t : Response.History.Data_frame.t -> Sexplib.Sexp.t
    end
  val unpack_bars : Response.History.t -> Response.History.Data_frame.t
  val t_of_sexp : Sexplib.Sexp.t -> Response.History.t
  val sexp_of_t : Response.History.t -> Sexplib.Sexp.t
end