sig
  type t = private {
    exec_id : Execution_id.t;
    commission : Price.t;
    currency : Currency.t;
    realized_pnl : Price.t;
    yield : float;
    yield_redemption_date : int option;
  }
  val yield_redemption_date : Response.Commission.t -> int option
  val yield : Response.Commission.t -> float
  val realized_pnl : Response.Commission.t -> Price.t
  val currency : Response.Commission.t -> Currency.t
  val commission : Response.Commission.t -> Price.t
  val exec_id : Response.Commission.t -> Execution_id.t
  module Fields :
    sig
      val names : string list
      val yield_redemption_date :
        (Response.Commission.t, int option) Fieldslib.Field.readonly_t
      val yield : (Response.Commission.t, float) Fieldslib.Field.readonly_t
      val realized_pnl :
        (Response.Commission.t, Price.t) Fieldslib.Field.readonly_t
      val currency :
        (Response.Commission.t, Currency.t) Fieldslib.Field.readonly_t
      val commission :
        (Response.Commission.t, Price.t) Fieldslib.Field.readonly_t
      val exec_id :
        (Response.Commission.t, Execution_id.t) Fieldslib.Field.readonly_t
      val fold :
        init:'acc__ ->
        exec_id:('acc__ ->
                 (Response.Commission.t, Execution_id.t)
                 Fieldslib.Field.readonly_t -> 'acc__) ->
        commission:('acc__ ->
                    (Response.Commission.t, Price.t)
                    Fieldslib.Field.readonly_t -> 'acc__) ->
        currency:('acc__ ->
                  (Response.Commission.t, Currency.t)
                  Fieldslib.Field.readonly_t -> 'acc__) ->
        realized_pnl:('acc__ ->
                      (Response.Commission.t, Price.t)
                      Fieldslib.Field.readonly_t -> 'acc__) ->
        yield:('acc__ ->
               (Response.Commission.t, float) Fieldslib.Field.readonly_t ->
               'acc__) ->
        yield_redemption_date:('acc__ ->
                               (Response.Commission.t, int option)
                               Fieldslib.Field.readonly_t -> 'acc__) ->
        'acc__
      val iter :
        exec_id:((Response.Commission.t, Execution_id.t)
                 Fieldslib.Field.readonly_t -> unit) ->
        commission:((Response.Commission.t, Price.t)
                    Fieldslib.Field.readonly_t -> unit) ->
        currency:((Response.Commission.t, Currency.t)
                  Fieldslib.Field.readonly_t -> unit) ->
        realized_pnl:((Response.Commission.t, Price.t)
                      Fieldslib.Field.readonly_t -> unit) ->
        yield:((Response.Commission.t, float) Fieldslib.Field.readonly_t ->
               unit) ->
        yield_redemption_date:((Response.Commission.t, int option)
                               Fieldslib.Field.readonly_t -> unit) ->
        unit
      val for_all :
        exec_id:((Response.Commission.t, Execution_id.t)
                 Fieldslib.Field.readonly_t -> bool) ->
        commission:((Response.Commission.t, Price.t)
                    Fieldslib.Field.readonly_t -> bool) ->
        currency:((Response.Commission.t, Currency.t)
                  Fieldslib.Field.readonly_t -> bool) ->
        realized_pnl:((Response.Commission.t, Price.t)
                      Fieldslib.Field.readonly_t -> bool) ->
        yield:((Response.Commission.t, float) Fieldslib.Field.readonly_t ->
               bool) ->
        yield_redemption_date:((Response.Commission.t, int option)
                               Fieldslib.Field.readonly_t -> bool) ->
        bool
      val exists :
        exec_id:((Response.Commission.t, Execution_id.t)
                 Fieldslib.Field.readonly_t -> bool) ->
        commission:((Response.Commission.t, Price.t)
                    Fieldslib.Field.readonly_t -> bool) ->
        currency:((Response.Commission.t, Currency.t)
                  Fieldslib.Field.readonly_t -> bool) ->
        realized_pnl:((Response.Commission.t, Price.t)
                      Fieldslib.Field.readonly_t -> bool) ->
        yield:((Response.Commission.t, float) Fieldslib.Field.readonly_t ->
               bool) ->
        yield_redemption_date:((Response.Commission.t, int option)
                               Fieldslib.Field.readonly_t -> bool) ->
        bool
      val to_list :
        exec_id:((Response.Commission.t, Execution_id.t)
                 Fieldslib.Field.readonly_t -> 'elem__) ->
        commission:((Response.Commission.t, Price.t)
                    Fieldslib.Field.readonly_t -> 'elem__) ->
        currency:((Response.Commission.t, Currency.t)
                  Fieldslib.Field.readonly_t -> 'elem__) ->
        realized_pnl:((Response.Commission.t, Price.t)
                      Fieldslib.Field.readonly_t -> 'elem__) ->
        yield:((Response.Commission.t, float) Fieldslib.Field.readonly_t ->
               'elem__) ->
        yield_redemption_date:((Response.Commission.t, int option)
                               Fieldslib.Field.readonly_t -> 'elem__) ->
        'elem__ list
      val map_poly :
        ([< `Read ], Response.Commission.t, 'x0) Fieldslib.Field.user ->
        'x0 list
      module Direct :
        sig
          val iter :
            Response.Commission.t ->
            exec_id:((Response.Commission.t, Execution_id.t)
                     Fieldslib.Field.readonly_t ->
                     Response.Commission.t -> Execution_id.t -> unit) ->
            commission:((Response.Commission.t, Price.t)
                        Fieldslib.Field.readonly_t ->
                        Response.Commission.t -> Price.t -> unit) ->
            currency:((Response.Commission.t, Currency.t)
                      Fieldslib.Field.readonly_t ->
                      Response.Commission.t -> Currency.t -> unit) ->
            realized_pnl:((Response.Commission.t, Price.t)
                          Fieldslib.Field.readonly_t ->
                          Response.Commission.t -> Price.t -> unit) ->
            yield:((Response.Commission.t, float) Fieldslib.Field.readonly_t ->
                   Response.Commission.t -> float -> unit) ->
            yield_redemption_date:((Response.Commission.t, int option)
                                   Fieldslib.Field.readonly_t ->
                                   Response.Commission.t ->
                                   int option -> unit) ->
            unit
          val fold :
            Response.Commission.t ->
            init:'acc__ ->
            exec_id:('acc__ ->
                     (Response.Commission.t, Execution_id.t)
                     Fieldslib.Field.readonly_t ->
                     Response.Commission.t -> Execution_id.t -> 'acc__) ->
            commission:('acc__ ->
                        (Response.Commission.t, Price.t)
                        Fieldslib.Field.readonly_t ->
                        Response.Commission.t -> Price.t -> 'acc__) ->
            currency:('acc__ ->
                      (Response.Commission.t, Currency.t)
                      Fieldslib.Field.readonly_t ->
                      Response.Commission.t -> Currency.t -> 'acc__) ->
            realized_pnl:('acc__ ->
                          (Response.Commission.t, Price.t)
                          Fieldslib.Field.readonly_t ->
                          Response.Commission.t -> Price.t -> 'acc__) ->
            yield:('acc__ ->
                   (Response.Commission.t, float) Fieldslib.Field.readonly_t ->
                   Response.Commission.t -> float -> 'acc__) ->
            yield_redemption_date:('acc__ ->
                                   (Response.Commission.t, int option)
                                   Fieldslib.Field.readonly_t ->
                                   Response.Commission.t ->
                                   int option -> '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 :
    exec_id:Execution_id.t ->
    commission:Price.t ->
    currency:Currency.t ->
    realized_pnl:Price.t ->
    yield:float -> yield_redemption_date:int option -> Response.Commission.t
  val t_of_sexp : Sexplib.Sexp.t -> Response.Commission.t
  val sexp_of_t : Response.Commission.t -> Sexplib.Sexp.t
end