sig
  type t = private {
    key : string;
    value : string;
    currency : string option;
    account_code : Account_code.t;
  }
  val account_code : Response.Account_update.t -> Account_code.t
  val currency : Response.Account_update.t -> string option
  val value : Response.Account_update.t -> string
  val key : Response.Account_update.t -> string
  module Fields :
    sig
      val names : string list
      val account_code :
        (Response.Account_update.t, Account_code.t)
        Fieldslib.Field.readonly_t
      val currency :
        (Response.Account_update.t, string option) Fieldslib.Field.readonly_t
      val value :
        (Response.Account_update.t, string) Fieldslib.Field.readonly_t
      val key :
        (Response.Account_update.t, string) Fieldslib.Field.readonly_t
      val fold :
        init:'acc__ ->
        key:('acc__ ->
             (Response.Account_update.t, string) Fieldslib.Field.readonly_t ->
             'acc__) ->
        value:('acc__ ->
               (Response.Account_update.t, string) Fieldslib.Field.readonly_t ->
               'acc__) ->
        currency:('acc__ ->
                  (Response.Account_update.t, string option)
                  Fieldslib.Field.readonly_t -> 'acc__) ->
        account_code:('acc__ ->
                      (Response.Account_update.t, Account_code.t)
                      Fieldslib.Field.readonly_t -> 'acc__) ->
        'acc__
      val iter :
        key:((Response.Account_update.t, string) Fieldslib.Field.readonly_t ->
             unit) ->
        value:((Response.Account_update.t, string) Fieldslib.Field.readonly_t ->
               unit) ->
        currency:((Response.Account_update.t, string option)
                  Fieldslib.Field.readonly_t -> unit) ->
        account_code:((Response.Account_update.t, Account_code.t)
                      Fieldslib.Field.readonly_t -> unit) ->
        unit
      val for_all :
        key:((Response.Account_update.t, string) Fieldslib.Field.readonly_t ->
             bool) ->
        value:((Response.Account_update.t, string) Fieldslib.Field.readonly_t ->
               bool) ->
        currency:((Response.Account_update.t, string option)
                  Fieldslib.Field.readonly_t -> bool) ->
        account_code:((Response.Account_update.t, Account_code.t)
                      Fieldslib.Field.readonly_t -> bool) ->
        bool
      val exists :
        key:((Response.Account_update.t, string) Fieldslib.Field.readonly_t ->
             bool) ->
        value:((Response.Account_update.t, string) Fieldslib.Field.readonly_t ->
               bool) ->
        currency:((Response.Account_update.t, string option)
                  Fieldslib.Field.readonly_t -> bool) ->
        account_code:((Response.Account_update.t, Account_code.t)
                      Fieldslib.Field.readonly_t -> bool) ->
        bool
      val to_list :
        key:((Response.Account_update.t, string) Fieldslib.Field.readonly_t ->
             'elem__) ->
        value:((Response.Account_update.t, string) Fieldslib.Field.readonly_t ->
               'elem__) ->
        currency:((Response.Account_update.t, string option)
                  Fieldslib.Field.readonly_t -> 'elem__) ->
        account_code:((Response.Account_update.t, Account_code.t)
                      Fieldslib.Field.readonly_t -> 'elem__) ->
        'elem__ list
      val map_poly :
        ([< `Read ], Response.Account_update.t, 'x0) Fieldslib.Field.user ->
        'x0 list
      module Direct :
        sig
          val iter :
            Response.Account_update.t ->
            key:((Response.Account_update.t, string)
                 Fieldslib.Field.readonly_t ->
                 Response.Account_update.t -> string -> unit) ->
            value:((Response.Account_update.t, string)
                   Fieldslib.Field.readonly_t ->
                   Response.Account_update.t -> string -> unit) ->
            currency:((Response.Account_update.t, string option)
                      Fieldslib.Field.readonly_t ->
                      Response.Account_update.t -> string option -> unit) ->
            account_code:((Response.Account_update.t, Account_code.t)
                          Fieldslib.Field.readonly_t ->
                          Response.Account_update.t -> Account_code.t -> unit) ->
            unit
          val fold :
            Response.Account_update.t ->
            init:'acc__ ->
            key:('acc__ ->
                 (Response.Account_update.t, string)
                 Fieldslib.Field.readonly_t ->
                 Response.Account_update.t -> string -> 'acc__) ->
            value:('acc__ ->
                   (Response.Account_update.t, string)
                   Fieldslib.Field.readonly_t ->
                   Response.Account_update.t -> string -> 'acc__) ->
            currency:('acc__ ->
                      (Response.Account_update.t, string option)
                      Fieldslib.Field.readonly_t ->
                      Response.Account_update.t -> string option -> 'acc__) ->
            account_code:('acc__ ->
                          (Response.Account_update.t, Account_code.t)
                          Fieldslib.Field.readonly_t ->
                          Response.Account_update.t ->
                          Account_code.t -> '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 :
    key:string ->
    value:string ->
    currency:string option ->
    account_code:Account_code.t -> Response.Account_update.t
  val t_of_sexp : Sexplib.Sexp.t -> Response.Account_update.t
  val sexp_of_t : Response.Account_update.t -> Sexplib.Sexp.t
end