sig
  val names : string list
  val size : (Response.Book_update.t, Volume.t) Fieldslib.Field.readonly_t
  val price : (Response.Book_update.t, Price.t) Fieldslib.Field.readonly_t
  val side :
    (Response.Book_update.t, Response.Book_update.Side.t)
    Fieldslib.Field.readonly_t
  val operation :
    (Response.Book_update.t, Response.Book_update.Operation.t)
    Fieldslib.Field.readonly_t
  val position : (Response.Book_update.t, int) Fieldslib.Field.readonly_t
  val fold :
    init:'acc__ ->
    position:('acc__ ->
              (Response.Book_update.t, int) Fieldslib.Field.readonly_t ->
              'acc__) ->
    operation:('acc__ ->
               (Response.Book_update.t, Response.Book_update.Operation.t)
               Fieldslib.Field.readonly_t -> 'acc__) ->
    side:('acc__ ->
          (Response.Book_update.t, Response.Book_update.Side.t)
          Fieldslib.Field.readonly_t -> 'acc__) ->
    price:('acc__ ->
           (Response.Book_update.t, Price.t) Fieldslib.Field.readonly_t ->
           'acc__) ->
    size:('acc__ ->
          (Response.Book_update.t, Volume.t) Fieldslib.Field.readonly_t ->
          'acc__) ->
    'acc__
  val iter :
    position:((Response.Book_update.t, int) Fieldslib.Field.readonly_t ->
              unit) ->
    operation:((Response.Book_update.t, Response.Book_update.Operation.t)
               Fieldslib.Field.readonly_t -> unit) ->
    side:((Response.Book_update.t, Response.Book_update.Side.t)
          Fieldslib.Field.readonly_t -> unit) ->
    price:((Response.Book_update.t, Price.t) Fieldslib.Field.readonly_t ->
           unit) ->
    size:((Response.Book_update.t, Volume.t) Fieldslib.Field.readonly_t ->
          unit) ->
    unit
  val for_all :
    position:((Response.Book_update.t, int) Fieldslib.Field.readonly_t ->
              bool) ->
    operation:((Response.Book_update.t, Response.Book_update.Operation.t)
               Fieldslib.Field.readonly_t -> bool) ->
    side:((Response.Book_update.t, Response.Book_update.Side.t)
          Fieldslib.Field.readonly_t -> bool) ->
    price:((Response.Book_update.t, Price.t) Fieldslib.Field.readonly_t ->
           bool) ->
    size:((Response.Book_update.t, Volume.t) Fieldslib.Field.readonly_t ->
          bool) ->
    bool
  val exists :
    position:((Response.Book_update.t, int) Fieldslib.Field.readonly_t ->
              bool) ->
    operation:((Response.Book_update.t, Response.Book_update.Operation.t)
               Fieldslib.Field.readonly_t -> bool) ->
    side:((Response.Book_update.t, Response.Book_update.Side.t)
          Fieldslib.Field.readonly_t -> bool) ->
    price:((Response.Book_update.t, Price.t) Fieldslib.Field.readonly_t ->
           bool) ->
    size:((Response.Book_update.t, Volume.t) Fieldslib.Field.readonly_t ->
          bool) ->
    bool
  val to_list :
    position:((Response.Book_update.t, int) Fieldslib.Field.readonly_t ->
              'elem__) ->
    operation:((Response.Book_update.t, Response.Book_update.Operation.t)
               Fieldslib.Field.readonly_t -> 'elem__) ->
    side:((Response.Book_update.t, Response.Book_update.Side.t)
          Fieldslib.Field.readonly_t -> 'elem__) ->
    price:((Response.Book_update.t, Price.t) Fieldslib.Field.readonly_t ->
           'elem__) ->
    size:((Response.Book_update.t, Volume.t) Fieldslib.Field.readonly_t ->
          'elem__) ->
    'elem__ list
  val map_poly :
    ([< `Read ], Response.Book_update.t, 'x0) Fieldslib.Field.user ->
    'x0 list
  module Direct :
    sig
      val iter :
        Response.Book_update.t ->
        position:((Response.Book_update.t, int) Fieldslib.Field.readonly_t ->
                  Response.Book_update.t -> int -> unit) ->
        operation:((Response.Book_update.t, Response.Book_update.Operation.t)
                   Fieldslib.Field.readonly_t ->
                   Response.Book_update.t ->
                   Response.Book_update.Operation.t -> unit) ->
        side:((Response.Book_update.t, Response.Book_update.Side.t)
              Fieldslib.Field.readonly_t ->
              Response.Book_update.t -> Response.Book_update.Side.t -> unit) ->
        price:((Response.Book_update.t, Price.t) Fieldslib.Field.readonly_t ->
               Response.Book_update.t -> Price.t -> unit) ->
        size:((Response.Book_update.t, Volume.t) Fieldslib.Field.readonly_t ->
              Response.Book_update.t -> Volume.t -> unit) ->
        unit
      val fold :
        Response.Book_update.t ->
        init:'acc__ ->
        position:('acc__ ->
                  (Response.Book_update.t, int) Fieldslib.Field.readonly_t ->
                  Response.Book_update.t -> int -> 'acc__) ->
        operation:('acc__ ->
                   (Response.Book_update.t, Response.Book_update.Operation.t)
                   Fieldslib.Field.readonly_t ->
                   Response.Book_update.t ->
                   Response.Book_update.Operation.t -> 'acc__) ->
        side:('acc__ ->
              (Response.Book_update.t, Response.Book_update.Side.t)
              Fieldslib.Field.readonly_t ->
              Response.Book_update.t -> Response.Book_update.Side.t -> 'acc__) ->
        price:('acc__ ->
               (Response.Book_update.t, Price.t) Fieldslib.Field.readonly_t ->
               Response.Book_update.t -> Price.t -> 'acc__) ->
        size:('acc__ ->
              (Response.Book_update.t, Volume.t) Fieldslib.Field.readonly_t ->
              Response.Book_update.t -> Volume.t -> 'acc__) ->
        'acc__
    end
end