sig
  val names : string list
  val not_held :
    ([< `Read | `Set_and_create ], Raw_order.t, bool)
    Fieldslib.Field.t_with_perm
  val request_pre_trade_information :
    ([< `Read | `Set_and_create ], Raw_order.t, bool)
    Fieldslib.Field.t_with_perm
  val algo_strategy :
    ([< `Read | `Set_and_create ], Raw_order.t, string option)
    Fieldslib.Field.t_with_perm
  val clearing_intent :
    ([< `Read | `Set_and_create ], Raw_order.t,
     Raw_order.Clearing_intent.t option)
    Fieldslib.Field.t_with_perm
  val clearing_account :
    ([< `Read | `Set_and_create ], Raw_order.t, string option)
    Fieldslib.Field.t_with_perm
  val settling_firm :
    ([< `Read | `Set_and_create ], Raw_order.t, string option)
    Fieldslib.Field.t_with_perm
  val account_code :
    ([< `Read | `Set_and_create ], Raw_order.t, Account_code.t option)
    Fieldslib.Field.t_with_perm
  val hedge_parameter :
    ([< `Read | `Set_and_create ], Raw_order.t, string option)
    Fieldslib.Field.t_with_perm
  val hedge_type :
    ([< `Read | `Set_and_create ], Raw_order.t,
     Raw_order.Hedge_type.t option)
    Fieldslib.Field.t_with_perm
  val scale_random_percent :
    ([< `Read | `Set_and_create ], Raw_order.t, bool)
    Fieldslib.Field.t_with_perm
  val scale_init_fill_quantity :
    ([< `Read | `Set_and_create ], Raw_order.t, int option)
    Fieldslib.Field.t_with_perm
  val scale_init_position :
    ([< `Read | `Set_and_create ], Raw_order.t, int option)
    Fieldslib.Field.t_with_perm
  val scale_auto_reset :
    ([< `Read | `Set_and_create ], Raw_order.t, bool)
    Fieldslib.Field.t_with_perm
  val scale_profit_offset :
    ([< `Read | `Set_and_create ], Raw_order.t, float option)
    Fieldslib.Field.t_with_perm
  val scale_price_adjust_interval :
    ([< `Read | `Set_and_create ], Raw_order.t, int option)
    Fieldslib.Field.t_with_perm
  val scale_price_adjust_value :
    ([< `Read | `Set_and_create ], Raw_order.t, float option)
    Fieldslib.Field.t_with_perm
  val scale_price_increment :
    ([< `Read | `Set_and_create ], Raw_order.t, float option)
    Fieldslib.Field.t_with_perm
  val scale_subsequent_level_size :
    ([< `Read | `Set_and_create ], Raw_order.t, Volume.t option)
    Fieldslib.Field.t_with_perm
  val scale_initial_level_size :
    ([< `Read | `Set_and_create ], Raw_order.t, Volume.t option)
    Fieldslib.Field.t_with_perm
  val basis_points_type :
    ([< `Read | `Set_and_create ], Raw_order.t, int option)
    Fieldslib.Field.t_with_perm
  val basis_points :
    ([< `Read | `Set_and_create ], Raw_order.t, float option)
    Fieldslib.Field.t_with_perm
  val delta_neutral_clearing_intent :
    ([< `Read | `Set_and_create ], Raw_order.t, string option)
    Fieldslib.Field.t_with_perm
  val delta_neutral_clearing_account :
    ([< `Read | `Set_and_create ], Raw_order.t, string option)
    Fieldslib.Field.t_with_perm
  val delta_neutral_settling_firm :
    ([< `Read | `Set_and_create ], Raw_order.t, string option)
    Fieldslib.Field.t_with_perm
  val delta_neutral_contract_id :
    ([< `Read | `Set_and_create ], Raw_order.t, Contract_id.t option)
    Fieldslib.Field.t_with_perm
  val delta_neutral_aux_price :
    ([< `Read | `Set_and_create ], Raw_order.t, Price.t option)
    Fieldslib.Field.t_with_perm
  val delta_neutral_order_type :
    ([< `Read | `Set_and_create ], Raw_order.t, Order_type.t option)
    Fieldslib.Field.t_with_perm
  val reference_price_type :
    ([< `Read | `Set_and_create ], Raw_order.t,
     Raw_order.Reference_price_type.t option)
    Fieldslib.Field.t_with_perm
  val continuous_update :
    ([< `Read | `Set_and_create ], Raw_order.t, bool)
    Fieldslib.Field.t_with_perm
  val volatility_type :
    ([< `Read | `Set_and_create ], Raw_order.t,
     Raw_order.Volatility_type.t option)
    Fieldslib.Field.t_with_perm
  val volatility :
    ([< `Read | `Set_and_create ], Raw_order.t, float option)
    Fieldslib.Field.t_with_perm
  val upper_stock_price_range :
    ([< `Read | `Set_and_create ], Raw_order.t, Price.t option)
    Fieldslib.Field.t_with_perm
  val lower_stock_price_range :
    ([< `Read | `Set_and_create ], Raw_order.t, Price.t option)
    Fieldslib.Field.t_with_perm
  val delta :
    ([< `Read | `Set_and_create ], Raw_order.t, float option)
    Fieldslib.Field.t_with_perm
  val stock_reference_price :
    ([< `Read | `Set_and_create ], Raw_order.t, Price.t option)
    Fieldslib.Field.t_with_perm
  val starting_price :
    ([< `Read | `Set_and_create ], Raw_order.t, Price.t option)
    Fieldslib.Field.t_with_perm
  val auction_strategy :
    ([< `Read | `Set_and_create ], Raw_order.t,
     Raw_order.Auction_strategy.t option)
    Fieldslib.Field.t_with_perm
  val opt_out_smart_routing :
    ([< `Read | `Set_and_create ], Raw_order.t, bool)
    Fieldslib.Field.t_with_perm
  val nbbo_price_cap :
    ([< `Read | `Set_and_create ], Raw_order.t, float option)
    Fieldslib.Field.t_with_perm
  val firm_quote_only :
    ([< `Read | `Set_and_create ], Raw_order.t, bool)
    Fieldslib.Field.t_with_perm
  val electronic_trade_only :
    ([< `Read | `Set_and_create ], Raw_order.t, bool)
    Fieldslib.Field.t_with_perm
  val discretionary_amount :
    ([< `Read | `Set_and_create ], Raw_order.t, float option)
    Fieldslib.Field.t_with_perm
  val exemption_code :
    ([< `Read | `Set_and_create ], Raw_order.t, int)
    Fieldslib.Field.t_with_perm
  val designated_location :
    ([< `Read | `Set_and_create ], Raw_order.t, string option)
    Fieldslib.Field.t_with_perm
  val short_sale_slot :
    ([< `Read | `Set_and_create ], Raw_order.t, int option)
    Fieldslib.Field.t_with_perm
  val origin :
    ([< `Read | `Set_and_create ], Raw_order.t, Raw_order.Origin.t)
    Fieldslib.Field.t_with_perm
  val open_close :
    ([< `Read | `Set_and_create ], Raw_order.t, Raw_order.Open_close.t)
    Fieldslib.Field.t_with_perm
  val financial_advisor_percentage :
    ([< `Read | `Set_and_create ], Raw_order.t, string option)
    Fieldslib.Field.t_with_perm
  val financial_advisor_method :
    ([< `Read | `Set_and_create ], Raw_order.t, string option)
    Fieldslib.Field.t_with_perm
  val financial_advisor_profile :
    ([< `Read | `Set_and_create ], Raw_order.t, string option)
    Fieldslib.Field.t_with_perm
  val financial_advisor_group :
    ([< `Read | `Set_and_create ], Raw_order.t, string option)
    Fieldslib.Field.t_with_perm
  val trailing_percent :
    ([< `Read | `Set_and_create ], Raw_order.t, float option)
    Fieldslib.Field.t_with_perm
  val trailing_stop_price :
    ([< `Read | `Set_and_create ], Raw_order.t, Price.t option)
    Fieldslib.Field.t_with_perm
  val percent_offset :
    ([< `Read | `Set_and_create ], Raw_order.t, float option)
    Fieldslib.Field.t_with_perm
  val minimum_quantity :
    ([< `Read | `Set_and_create ], Raw_order.t, Volume.t option)
    Fieldslib.Field.t_with_perm
  val all_or_none :
    ([< `Read | `Set_and_create ], Raw_order.t, bool)
    Fieldslib.Field.t_with_perm
  val rule80A :
    ([< `Read | `Set_and_create ], Raw_order.t, Raw_order.Rule80A.t option)
    Fieldslib.Field.t_with_perm
  val override_percentage_constraints :
    ([< `Read | `Set_and_create ], Raw_order.t, bool)
    Fieldslib.Field.t_with_perm
  val good_till_date_time :
    ([< `Read | `Set_and_create ], Raw_order.t, Core.Std.Time.t option)
    Fieldslib.Field.t_with_perm
  val good_after_date_time :
    ([< `Read | `Set_and_create ], Raw_order.t, Core.Std.Time.t option)
    Fieldslib.Field.t_with_perm
  val hidden :
    ([< `Read | `Set_and_create ], Raw_order.t, bool)
    Fieldslib.Field.t_with_perm
  val outside_regular_trading_hours :
    ([< `Read | `Set_and_create ], Raw_order.t, bool)
    Fieldslib.Field.t_with_perm
  val stop_trigger_method :
    ([< `Read | `Set_and_create ], Raw_order.t,
     Raw_order.Stop_trigger_method.t)
    Fieldslib.Field.t_with_perm
  val display_size :
    ([< `Read | `Set_and_create ], Raw_order.t, Volume.t option)
    Fieldslib.Field.t_with_perm
  val sweep_to_fill :
    ([< `Read | `Set_and_create ], Raw_order.t, bool)
    Fieldslib.Field.t_with_perm
  val block_order :
    ([< `Read | `Set_and_create ], Raw_order.t, bool)
    Fieldslib.Field.t_with_perm
  val parent_id :
    ([< `Read | `Set_and_create ], Raw_order.t, Order_id.t option)
    Fieldslib.Field.t_with_perm
  val transmit :
    ([< `Read | `Set_and_create ], Raw_order.t, bool)
    Fieldslib.Field.t_with_perm
  val order_ref :
    ([< `Read | `Set_and_create ], Raw_order.t, string option)
    Fieldslib.Field.t_with_perm
  val oca_type :
    ([< `Read | `Set_and_create ], Raw_order.t, Raw_order.Oca_type.t option)
    Fieldslib.Field.t_with_perm
  val oca_group_name :
    ([< `Read | `Set_and_create ], Raw_order.t, string option)
    Fieldslib.Field.t_with_perm
  val time_in_force :
    ([< `Read | `Set_and_create ], Raw_order.t,
     Raw_order.Time_in_force.t option)
    Fieldslib.Field.t_with_perm
  val stop_price :
    ([< `Read | `Set_and_create ], Raw_order.t, Price.t option)
    Fieldslib.Field.t_with_perm
  val limit_price :
    ([< `Read | `Set_and_create ], Raw_order.t, Price.t option)
    Fieldslib.Field.t_with_perm
  val order_type :
    ([< `Read | `Set_and_create ], Raw_order.t, string)
    Fieldslib.Field.t_with_perm
  val quantity :
    ([< `Read | `Set_and_create ], Raw_order.t, Volume.t)
    Fieldslib.Field.t_with_perm
  val action :
    ([< `Read | `Set_and_create ], Raw_order.t, string)
    Fieldslib.Field.t_with_perm
  val order_id :
    ([< `Read | `Set_and_create ], Raw_order.t, Order_id.t)
    Fieldslib.Field.t_with_perm
  val make_creator :
    order_id:(([< `Read | `Set_and_create ], Raw_order.t, Order_id.t)
              Fieldslib.Field.t_with_perm -> '-> ('-> Order_id.t) * 'c) ->
    action:(([< `Read | `Set_and_create ], Raw_order.t, string)
            Fieldslib.Field.t_with_perm -> '-> ('-> string) * 'd) ->
    quantity:(([< `Read | `Set_and_create ], Raw_order.t, Volume.t)
              Fieldslib.Field.t_with_perm -> '-> ('-> Volume.t) * 'e) ->
    order_type:(([< `Read | `Set_and_create ], Raw_order.t, string)
                Fieldslib.Field.t_with_perm -> '-> ('-> string) * 'f) ->
    limit_price:(([< `Read | `Set_and_create ], Raw_order.t, Price.t option)
                 Fieldslib.Field.t_with_perm ->
                 '-> ('-> Price.t option) * 'g) ->
    stop_price:(([< `Read | `Set_and_create ], Raw_order.t, Price.t option)
                Fieldslib.Field.t_with_perm ->
                '-> ('-> Price.t option) * 'h) ->
    time_in_force:(([< `Read | `Set_and_create ], Raw_order.t,
                    Raw_order.Time_in_force.t option)
                   Fieldslib.Field.t_with_perm ->
                   '-> ('-> Raw_order.Time_in_force.t option) * 'i) ->
    oca_group_name:(([< `Read | `Set_and_create ], Raw_order.t,
                     string option)
                    Fieldslib.Field.t_with_perm ->
                    '-> ('-> string option) * 'j) ->
    oca_type:(([< `Read | `Set_and_create ], Raw_order.t,
               Raw_order.Oca_type.t option)
              Fieldslib.Field.t_with_perm ->
              '-> ('-> Raw_order.Oca_type.t option) * 'k) ->
    order_ref:(([< `Read | `Set_and_create ], Raw_order.t, string option)
               Fieldslib.Field.t_with_perm ->
               '-> ('-> string option) * 'l) ->
    transmit:(([< `Read | `Set_and_create ], Raw_order.t, bool)
              Fieldslib.Field.t_with_perm -> '-> ('-> bool) * 'm) ->
    parent_id:(([< `Read | `Set_and_create ], Raw_order.t, Order_id.t option)
               Fieldslib.Field.t_with_perm ->
               '-> ('-> Order_id.t option) * 'n) ->
    block_order:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                 Fieldslib.Field.t_with_perm -> '-> ('-> bool) * 'o) ->
    sweep_to_fill:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                   Fieldslib.Field.t_with_perm -> '-> ('-> bool) * 'p) ->
    display_size:(([< `Read | `Set_and_create ], Raw_order.t,
                   Volume.t option)
                  Fieldslib.Field.t_with_perm ->
                  '-> ('-> Volume.t option) * 'q) ->
    stop_trigger_method:(([< `Read | `Set_and_create ], Raw_order.t,
                          Raw_order.Stop_trigger_method.t)
                         Fieldslib.Field.t_with_perm ->
                         '-> ('-> Raw_order.Stop_trigger_method.t) * 'r) ->
    outside_regular_trading_hours:(([< `Read | `Set_and_create ],
                                    Raw_order.t, bool)
                                   Fieldslib.Field.t_with_perm ->
                                   '-> ('-> bool) * 's) ->
    hidden:(([< `Read | `Set_and_create ], Raw_order.t, bool)
            Fieldslib.Field.t_with_perm -> '-> ('-> bool) * 't) ->
    good_after_date_time:(([< `Read | `Set_and_create ], Raw_order.t,
                           Core.Std.Time.t option)
                          Fieldslib.Field.t_with_perm ->
                          '-> ('-> Core.Std.Time.t option) * 'u) ->
    good_till_date_time:(([< `Read | `Set_and_create ], Raw_order.t,
                          Core.Std.Time.t option)
                         Fieldslib.Field.t_with_perm ->
                         '-> ('-> Core.Std.Time.t option) * 'v) ->
    override_percentage_constraints:(([< `Read | `Set_and_create ],
                                      Raw_order.t, bool)
                                     Fieldslib.Field.t_with_perm ->
                                     '-> ('-> bool) * 'w) ->
    rule80A:(([< `Read | `Set_and_create ], Raw_order.t,
              Raw_order.Rule80A.t option)
             Fieldslib.Field.t_with_perm ->
             '-> ('-> Raw_order.Rule80A.t option) * 'x) ->
    all_or_none:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                 Fieldslib.Field.t_with_perm -> '-> ('-> bool) * 'y) ->
    minimum_quantity:(([< `Read | `Set_and_create ], Raw_order.t,
                       Volume.t option)
                      Fieldslib.Field.t_with_perm ->
                      '-> ('-> Volume.t option) * 'z) ->
    percent_offset:(([< `Read | `Set_and_create ], Raw_order.t, float option)
                    Fieldslib.Field.t_with_perm ->
                    '-> ('-> float option) * 'a1) ->
    trailing_stop_price:(([< `Read | `Set_and_create ], Raw_order.t,
                          Price.t option)
                         Fieldslib.Field.t_with_perm ->
                         'a1 -> ('-> Price.t option) * 'b1) ->
    trailing_percent:(([< `Read | `Set_and_create ], Raw_order.t,
                       float option)
                      Fieldslib.Field.t_with_perm ->
                      'b1 -> ('-> float option) * 'c1) ->
    financial_advisor_group:(([< `Read | `Set_and_create ], Raw_order.t,
                              string option)
                             Fieldslib.Field.t_with_perm ->
                             'c1 -> ('-> string option) * 'd1) ->
    financial_advisor_profile:(([< `Read | `Set_and_create ], Raw_order.t,
                                string option)
                               Fieldslib.Field.t_with_perm ->
                               'd1 -> ('-> string option) * 'e1) ->
    financial_advisor_method:(([< `Read | `Set_and_create ], Raw_order.t,
                               string option)
                              Fieldslib.Field.t_with_perm ->
                              'e1 -> ('-> string option) * 'f1) ->
    financial_advisor_percentage:(([< `Read | `Set_and_create ], Raw_order.t,
                                   string option)
                                  Fieldslib.Field.t_with_perm ->
                                  'f1 -> ('-> string option) * 'g1) ->
    open_close:(([< `Read | `Set_and_create ], Raw_order.t,
                 Raw_order.Open_close.t)
                Fieldslib.Field.t_with_perm ->
                'g1 -> ('-> Raw_order.Open_close.t) * 'h1) ->
    origin:(([< `Read | `Set_and_create ], Raw_order.t, Raw_order.Origin.t)
            Fieldslib.Field.t_with_perm ->
            'h1 -> ('-> Raw_order.Origin.t) * 'i1) ->
    short_sale_slot:(([< `Read | `Set_and_create ], Raw_order.t, int option)
                     Fieldslib.Field.t_with_perm ->
                     'i1 -> ('-> int option) * 'j1) ->
    designated_location:(([< `Read | `Set_and_create ], Raw_order.t,
                          string option)
                         Fieldslib.Field.t_with_perm ->
                         'j1 -> ('-> string option) * 'k1) ->
    exemption_code:(([< `Read | `Set_and_create ], Raw_order.t, int)
                    Fieldslib.Field.t_with_perm -> 'k1 -> ('-> int) * 'l1) ->
    discretionary_amount:(([< `Read | `Set_and_create ], Raw_order.t,
                           float option)
                          Fieldslib.Field.t_with_perm ->
                          'l1 -> ('-> float option) * 'm1) ->
    electronic_trade_only:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                           Fieldslib.Field.t_with_perm ->
                           'm1 -> ('-> bool) * 'n1) ->
    firm_quote_only:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                     Fieldslib.Field.t_with_perm -> 'n1 -> ('-> bool) * 'o1) ->
    nbbo_price_cap:(([< `Read | `Set_and_create ], Raw_order.t, float option)
                    Fieldslib.Field.t_with_perm ->
                    'o1 -> ('-> float option) * 'p1) ->
    opt_out_smart_routing:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                           Fieldslib.Field.t_with_perm ->
                           'p1 -> ('-> bool) * 'q1) ->
    auction_strategy:(([< `Read | `Set_and_create ], Raw_order.t,
                       Raw_order.Auction_strategy.t option)
                      Fieldslib.Field.t_with_perm ->
                      'q1 ->
                      ('-> Raw_order.Auction_strategy.t option) * 'r1) ->
    starting_price:(([< `Read | `Set_and_create ], Raw_order.t,
                     Price.t option)
                    Fieldslib.Field.t_with_perm ->
                    'r1 -> ('-> Price.t option) * 's1) ->
    stock_reference_price:(([< `Read | `Set_and_create ], Raw_order.t,
                            Price.t option)
                           Fieldslib.Field.t_with_perm ->
                           's1 -> ('-> Price.t option) * 't1) ->
    delta:(([< `Read | `Set_and_create ], Raw_order.t, float option)
           Fieldslib.Field.t_with_perm -> 't1 -> ('-> float option) * 'u1) ->
    lower_stock_price_range:(([< `Read | `Set_and_create ], Raw_order.t,
                              Price.t option)
                             Fieldslib.Field.t_with_perm ->
                             'u1 -> ('-> Price.t option) * 'v1) ->
    upper_stock_price_range:(([< `Read | `Set_and_create ], Raw_order.t,
                              Price.t option)
                             Fieldslib.Field.t_with_perm ->
                             'v1 -> ('-> Price.t option) * 'w1) ->
    volatility:(([< `Read | `Set_and_create ], Raw_order.t, float option)
                Fieldslib.Field.t_with_perm ->
                'w1 -> ('-> float option) * 'x1) ->
    volatility_type:(([< `Read | `Set_and_create ], Raw_order.t,
                      Raw_order.Volatility_type.t option)
                     Fieldslib.Field.t_with_perm ->
                     'x1 -> ('-> Raw_order.Volatility_type.t option) * 'y1) ->
    continuous_update:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                       Fieldslib.Field.t_with_perm ->
                       'y1 -> ('-> bool) * 'z1) ->
    reference_price_type:(([< `Read | `Set_and_create ], Raw_order.t,
                           Raw_order.Reference_price_type.t option)
                          Fieldslib.Field.t_with_perm ->
                          'z1 ->
                          ('-> Raw_order.Reference_price_type.t option) *
                          'a2) ->
    delta_neutral_order_type:(([< `Read | `Set_and_create ], Raw_order.t,
                               Order_type.t option)
                              Fieldslib.Field.t_with_perm ->
                              'a2 -> ('-> Order_type.t option) * 'b2) ->
    delta_neutral_aux_price:(([< `Read | `Set_and_create ], Raw_order.t,
                              Price.t option)
                             Fieldslib.Field.t_with_perm ->
                             'b2 -> ('-> Price.t option) * 'c2) ->
    delta_neutral_contract_id:(([< `Read | `Set_and_create ], Raw_order.t,
                                Contract_id.t option)
                               Fieldslib.Field.t_with_perm ->
                               'c2 -> ('-> Contract_id.t option) * 'd2) ->
    delta_neutral_settling_firm:(([< `Read | `Set_and_create ], Raw_order.t,
                                  string option)
                                 Fieldslib.Field.t_with_perm ->
                                 'd2 -> ('-> string option) * 'e2) ->
    delta_neutral_clearing_account:(([< `Read | `Set_and_create ],
                                     Raw_order.t, string option)
                                    Fieldslib.Field.t_with_perm ->
                                    'e2 -> ('-> string option) * 'f2) ->
    delta_neutral_clearing_intent:(([< `Read | `Set_and_create ],
                                    Raw_order.t, string option)
                                   Fieldslib.Field.t_with_perm ->
                                   'f2 -> ('-> string option) * 'g2) ->
    basis_points:(([< `Read | `Set_and_create ], Raw_order.t, float option)
                  Fieldslib.Field.t_with_perm ->
                  'g2 -> ('-> float option) * 'h2) ->
    basis_points_type:(([< `Read | `Set_and_create ], Raw_order.t,
                        int option)
                       Fieldslib.Field.t_with_perm ->
                       'h2 -> ('-> int option) * 'i2) ->
    scale_initial_level_size:(([< `Read | `Set_and_create ], Raw_order.t,
                               Volume.t option)
                              Fieldslib.Field.t_with_perm ->
                              'i2 -> ('-> Volume.t option) * 'j2) ->
    scale_subsequent_level_size:(([< `Read | `Set_and_create ], Raw_order.t,
                                  Volume.t option)
                                 Fieldslib.Field.t_with_perm ->
                                 'j2 -> ('-> Volume.t option) * 'k2) ->
    scale_price_increment:(([< `Read | `Set_and_create ], Raw_order.t,
                            float option)
                           Fieldslib.Field.t_with_perm ->
                           'k2 -> ('-> float option) * 'l2) ->
    scale_price_adjust_value:(([< `Read | `Set_and_create ], Raw_order.t,
                               float option)
                              Fieldslib.Field.t_with_perm ->
                              'l2 -> ('-> float option) * 'm2) ->
    scale_price_adjust_interval:(([< `Read | `Set_and_create ], Raw_order.t,
                                  int option)
                                 Fieldslib.Field.t_with_perm ->
                                 'm2 -> ('-> int option) * 'n2) ->
    scale_profit_offset:(([< `Read | `Set_and_create ], Raw_order.t,
                          float option)
                         Fieldslib.Field.t_with_perm ->
                         'n2 -> ('-> float option) * 'o2) ->
    scale_auto_reset:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                      Fieldslib.Field.t_with_perm ->
                      'o2 -> ('-> bool) * 'p2) ->
    scale_init_position:(([< `Read | `Set_and_create ], Raw_order.t,
                          int option)
                         Fieldslib.Field.t_with_perm ->
                         'p2 -> ('-> int option) * 'q2) ->
    scale_init_fill_quantity:(([< `Read | `Set_and_create ], Raw_order.t,
                               int option)
                              Fieldslib.Field.t_with_perm ->
                              'q2 -> ('-> int option) * 'r2) ->
    scale_random_percent:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                          Fieldslib.Field.t_with_perm ->
                          'r2 -> ('-> bool) * 's2) ->
    hedge_type:(([< `Read | `Set_and_create ], Raw_order.t,
                 Raw_order.Hedge_type.t option)
                Fieldslib.Field.t_with_perm ->
                's2 -> ('-> Raw_order.Hedge_type.t option) * 't2) ->
    hedge_parameter:(([< `Read | `Set_and_create ], Raw_order.t,
                      string option)
                     Fieldslib.Field.t_with_perm ->
                     't2 -> ('-> string option) * 'u2) ->
    account_code:(([< `Read | `Set_and_create ], Raw_order.t,
                   Account_code.t option)
                  Fieldslib.Field.t_with_perm ->
                  'u2 -> ('-> Account_code.t option) * 'v2) ->
    settling_firm:(([< `Read | `Set_and_create ], Raw_order.t, string option)
                   Fieldslib.Field.t_with_perm ->
                   'v2 -> ('-> string option) * 'w2) ->
    clearing_account:(([< `Read | `Set_and_create ], Raw_order.t,
                       string option)
                      Fieldslib.Field.t_with_perm ->
                      'w2 -> ('-> string option) * 'x2) ->
    clearing_intent:(([< `Read | `Set_and_create ], Raw_order.t,
                      Raw_order.Clearing_intent.t option)
                     Fieldslib.Field.t_with_perm ->
                     'x2 -> ('-> Raw_order.Clearing_intent.t option) * 'y2) ->
    algo_strategy:(([< `Read | `Set_and_create ], Raw_order.t, string option)
                   Fieldslib.Field.t_with_perm ->
                   'y2 -> ('-> string option) * 'z2) ->
    request_pre_trade_information:(([< `Read | `Set_and_create ],
                                    Raw_order.t, bool)
                                   Fieldslib.Field.t_with_perm ->
                                   'z2 -> ('-> bool) * 'a3) ->
    not_held:(([< `Read | `Set_and_create ], Raw_order.t, bool)
              Fieldslib.Field.t_with_perm -> 'a3 -> ('-> bool) * 'b3) ->
    '-> ('-> Raw_order.t) * 'b3
  val create :
    order_id:Order_id.t ->
    action:string ->
    quantity:Volume.t ->
    order_type:string ->
    limit_price:Price.t option ->
    stop_price:Price.t option ->
    time_in_force:Raw_order.Time_in_force.t option ->
    oca_group_name:string option ->
    oca_type:Raw_order.Oca_type.t option ->
    order_ref:string option ->
    transmit:bool ->
    parent_id:Order_id.t option ->
    block_order:bool ->
    sweep_to_fill:bool ->
    display_size:Volume.t option ->
    stop_trigger_method:Raw_order.Stop_trigger_method.t ->
    outside_regular_trading_hours:bool ->
    hidden:bool ->
    good_after_date_time:Core.Std.Time.t option ->
    good_till_date_time:Core.Std.Time.t option ->
    override_percentage_constraints:bool ->
    rule80A:Raw_order.Rule80A.t option ->
    all_or_none:bool ->
    minimum_quantity:Volume.t option ->
    percent_offset:float option ->
    trailing_stop_price:Price.t option ->
    trailing_percent:float option ->
    financial_advisor_group:string option ->
    financial_advisor_profile:string option ->
    financial_advisor_method:string option ->
    financial_advisor_percentage:string option ->
    open_close:Raw_order.Open_close.t ->
    origin:Raw_order.Origin.t ->
    short_sale_slot:int option ->
    designated_location:string option ->
    exemption_code:int ->
    discretionary_amount:float option ->
    electronic_trade_only:bool ->
    firm_quote_only:bool ->
    nbbo_price_cap:float option ->
    opt_out_smart_routing:bool ->
    auction_strategy:Raw_order.Auction_strategy.t option ->
    starting_price:Price.t option ->
    stock_reference_price:Price.t option ->
    delta:float option ->
    lower_stock_price_range:Price.t option ->
    upper_stock_price_range:Price.t option ->
    volatility:float option ->
    volatility_type:Raw_order.Volatility_type.t option ->
    continuous_update:bool ->
    reference_price_type:Raw_order.Reference_price_type.t option ->
    delta_neutral_order_type:Order_type.t option ->
    delta_neutral_aux_price:Price.t option ->
    delta_neutral_contract_id:Contract_id.t option ->
    delta_neutral_settling_firm:string option ->
    delta_neutral_clearing_account:string option ->
    delta_neutral_clearing_intent:string option ->
    basis_points:float option ->
    basis_points_type:int option ->
    scale_initial_level_size:Volume.t option ->
    scale_subsequent_level_size:Volume.t option ->
    scale_price_increment:float option ->
    scale_price_adjust_value:float option ->
    scale_price_adjust_interval:int option ->
    scale_profit_offset:float option ->
    scale_auto_reset:bool ->
    scale_init_position:int option ->
    scale_init_fill_quantity:int option ->
    scale_random_percent:bool ->
    hedge_type:Raw_order.Hedge_type.t option ->
    hedge_parameter:string option ->
    account_code:Account_code.t option ->
    settling_firm:string option ->
    clearing_account:string option ->
    clearing_intent:Raw_order.Clearing_intent.t option ->
    algo_strategy:string option ->
    request_pre_trade_information:bool -> not_held:bool -> Raw_order.t
  val map :
    order_id:(([< `Read | `Set_and_create ], Raw_order.t, Order_id.t)
              Fieldslib.Field.t_with_perm -> Order_id.t) ->
    action:(([< `Read | `Set_and_create ], Raw_order.t, string)
            Fieldslib.Field.t_with_perm -> string) ->
    quantity:(([< `Read | `Set_and_create ], Raw_order.t, Volume.t)
              Fieldslib.Field.t_with_perm -> Volume.t) ->
    order_type:(([< `Read | `Set_and_create ], Raw_order.t, string)
                Fieldslib.Field.t_with_perm -> string) ->
    limit_price:(([< `Read | `Set_and_create ], Raw_order.t, Price.t option)
                 Fieldslib.Field.t_with_perm -> Price.t option) ->
    stop_price:(([< `Read | `Set_and_create ], Raw_order.t, Price.t option)
                Fieldslib.Field.t_with_perm -> Price.t option) ->
    time_in_force:(([< `Read | `Set_and_create ], Raw_order.t,
                    Raw_order.Time_in_force.t option)
                   Fieldslib.Field.t_with_perm ->
                   Raw_order.Time_in_force.t option) ->
    oca_group_name:(([< `Read | `Set_and_create ], Raw_order.t,
                     string option)
                    Fieldslib.Field.t_with_perm -> string option) ->
    oca_type:(([< `Read | `Set_and_create ], Raw_order.t,
               Raw_order.Oca_type.t option)
              Fieldslib.Field.t_with_perm -> Raw_order.Oca_type.t option) ->
    order_ref:(([< `Read | `Set_and_create ], Raw_order.t, string option)
               Fieldslib.Field.t_with_perm -> string option) ->
    transmit:(([< `Read | `Set_and_create ], Raw_order.t, bool)
              Fieldslib.Field.t_with_perm -> bool) ->
    parent_id:(([< `Read | `Set_and_create ], Raw_order.t, Order_id.t option)
               Fieldslib.Field.t_with_perm -> Order_id.t option) ->
    block_order:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                 Fieldslib.Field.t_with_perm -> bool) ->
    sweep_to_fill:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                   Fieldslib.Field.t_with_perm -> bool) ->
    display_size:(([< `Read | `Set_and_create ], Raw_order.t,
                   Volume.t option)
                  Fieldslib.Field.t_with_perm -> Volume.t option) ->
    stop_trigger_method:(([< `Read | `Set_and_create ], Raw_order.t,
                          Raw_order.Stop_trigger_method.t)
                         Fieldslib.Field.t_with_perm ->
                         Raw_order.Stop_trigger_method.t) ->
    outside_regular_trading_hours:(([< `Read | `Set_and_create ],
                                    Raw_order.t, bool)
                                   Fieldslib.Field.t_with_perm -> bool) ->
    hidden:(([< `Read | `Set_and_create ], Raw_order.t, bool)
            Fieldslib.Field.t_with_perm -> bool) ->
    good_after_date_time:(([< `Read | `Set_and_create ], Raw_order.t,
                           Core.Std.Time.t option)
                          Fieldslib.Field.t_with_perm ->
                          Core.Std.Time.t option) ->
    good_till_date_time:(([< `Read | `Set_and_create ], Raw_order.t,
                          Core.Std.Time.t option)
                         Fieldslib.Field.t_with_perm ->
                         Core.Std.Time.t option) ->
    override_percentage_constraints:(([< `Read | `Set_and_create ],
                                      Raw_order.t, bool)
                                     Fieldslib.Field.t_with_perm -> bool) ->
    rule80A:(([< `Read | `Set_and_create ], Raw_order.t,
              Raw_order.Rule80A.t option)
             Fieldslib.Field.t_with_perm -> Raw_order.Rule80A.t option) ->
    all_or_none:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                 Fieldslib.Field.t_with_perm -> bool) ->
    minimum_quantity:(([< `Read | `Set_and_create ], Raw_order.t,
                       Volume.t option)
                      Fieldslib.Field.t_with_perm -> Volume.t option) ->
    percent_offset:(([< `Read | `Set_and_create ], Raw_order.t, float option)
                    Fieldslib.Field.t_with_perm -> float option) ->
    trailing_stop_price:(([< `Read | `Set_and_create ], Raw_order.t,
                          Price.t option)
                         Fieldslib.Field.t_with_perm -> Price.t option) ->
    trailing_percent:(([< `Read | `Set_and_create ], Raw_order.t,
                       float option)
                      Fieldslib.Field.t_with_perm -> float option) ->
    financial_advisor_group:(([< `Read | `Set_and_create ], Raw_order.t,
                              string option)
                             Fieldslib.Field.t_with_perm -> string option) ->
    financial_advisor_profile:(([< `Read | `Set_and_create ], Raw_order.t,
                                string option)
                               Fieldslib.Field.t_with_perm -> string option) ->
    financial_advisor_method:(([< `Read | `Set_and_create ], Raw_order.t,
                               string option)
                              Fieldslib.Field.t_with_perm -> string option) ->
    financial_advisor_percentage:(([< `Read | `Set_and_create ], Raw_order.t,
                                   string option)
                                  Fieldslib.Field.t_with_perm ->
                                  string option) ->
    open_close:(([< `Read | `Set_and_create ], Raw_order.t,
                 Raw_order.Open_close.t)
                Fieldslib.Field.t_with_perm -> Raw_order.Open_close.t) ->
    origin:(([< `Read | `Set_and_create ], Raw_order.t, Raw_order.Origin.t)
            Fieldslib.Field.t_with_perm -> Raw_order.Origin.t) ->
    short_sale_slot:(([< `Read | `Set_and_create ], Raw_order.t, int option)
                     Fieldslib.Field.t_with_perm -> int option) ->
    designated_location:(([< `Read | `Set_and_create ], Raw_order.t,
                          string option)
                         Fieldslib.Field.t_with_perm -> string option) ->
    exemption_code:(([< `Read | `Set_and_create ], Raw_order.t, int)
                    Fieldslib.Field.t_with_perm -> int) ->
    discretionary_amount:(([< `Read | `Set_and_create ], Raw_order.t,
                           float option)
                          Fieldslib.Field.t_with_perm -> float option) ->
    electronic_trade_only:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                           Fieldslib.Field.t_with_perm -> bool) ->
    firm_quote_only:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                     Fieldslib.Field.t_with_perm -> bool) ->
    nbbo_price_cap:(([< `Read | `Set_and_create ], Raw_order.t, float option)
                    Fieldslib.Field.t_with_perm -> float option) ->
    opt_out_smart_routing:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                           Fieldslib.Field.t_with_perm -> bool) ->
    auction_strategy:(([< `Read | `Set_and_create ], Raw_order.t,
                       Raw_order.Auction_strategy.t option)
                      Fieldslib.Field.t_with_perm ->
                      Raw_order.Auction_strategy.t option) ->
    starting_price:(([< `Read | `Set_and_create ], Raw_order.t,
                     Price.t option)
                    Fieldslib.Field.t_with_perm -> Price.t option) ->
    stock_reference_price:(([< `Read | `Set_and_create ], Raw_order.t,
                            Price.t option)
                           Fieldslib.Field.t_with_perm -> Price.t option) ->
    delta:(([< `Read | `Set_and_create ], Raw_order.t, float option)
           Fieldslib.Field.t_with_perm -> float option) ->
    lower_stock_price_range:(([< `Read | `Set_and_create ], Raw_order.t,
                              Price.t option)
                             Fieldslib.Field.t_with_perm -> Price.t option) ->
    upper_stock_price_range:(([< `Read | `Set_and_create ], Raw_order.t,
                              Price.t option)
                             Fieldslib.Field.t_with_perm -> Price.t option) ->
    volatility:(([< `Read | `Set_and_create ], Raw_order.t, float option)
                Fieldslib.Field.t_with_perm -> float option) ->
    volatility_type:(([< `Read | `Set_and_create ], Raw_order.t,
                      Raw_order.Volatility_type.t option)
                     Fieldslib.Field.t_with_perm ->
                     Raw_order.Volatility_type.t option) ->
    continuous_update:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                       Fieldslib.Field.t_with_perm -> bool) ->
    reference_price_type:(([< `Read | `Set_and_create ], Raw_order.t,
                           Raw_order.Reference_price_type.t option)
                          Fieldslib.Field.t_with_perm ->
                          Raw_order.Reference_price_type.t option) ->
    delta_neutral_order_type:(([< `Read | `Set_and_create ], Raw_order.t,
                               Order_type.t option)
                              Fieldslib.Field.t_with_perm ->
                              Order_type.t option) ->
    delta_neutral_aux_price:(([< `Read | `Set_and_create ], Raw_order.t,
                              Price.t option)
                             Fieldslib.Field.t_with_perm -> Price.t option) ->
    delta_neutral_contract_id:(([< `Read | `Set_and_create ], Raw_order.t,
                                Contract_id.t option)
                               Fieldslib.Field.t_with_perm ->
                               Contract_id.t option) ->
    delta_neutral_settling_firm:(([< `Read | `Set_and_create ], Raw_order.t,
                                  string option)
                                 Fieldslib.Field.t_with_perm -> string option) ->
    delta_neutral_clearing_account:(([< `Read | `Set_and_create ],
                                     Raw_order.t, string option)
                                    Fieldslib.Field.t_with_perm ->
                                    string option) ->
    delta_neutral_clearing_intent:(([< `Read | `Set_and_create ],
                                    Raw_order.t, string option)
                                   Fieldslib.Field.t_with_perm ->
                                   string option) ->
    basis_points:(([< `Read | `Set_and_create ], Raw_order.t, float option)
                  Fieldslib.Field.t_with_perm -> float option) ->
    basis_points_type:(([< `Read | `Set_and_create ], Raw_order.t,
                        int option)
                       Fieldslib.Field.t_with_perm -> int option) ->
    scale_initial_level_size:(([< `Read | `Set_and_create ], Raw_order.t,
                               Volume.t option)
                              Fieldslib.Field.t_with_perm -> Volume.t option) ->
    scale_subsequent_level_size:(([< `Read | `Set_and_create ], Raw_order.t,
                                  Volume.t option)
                                 Fieldslib.Field.t_with_perm ->
                                 Volume.t option) ->
    scale_price_increment:(([< `Read | `Set_and_create ], Raw_order.t,
                            float option)
                           Fieldslib.Field.t_with_perm -> float option) ->
    scale_price_adjust_value:(([< `Read | `Set_and_create ], Raw_order.t,
                               float option)
                              Fieldslib.Field.t_with_perm -> float option) ->
    scale_price_adjust_interval:(([< `Read | `Set_and_create ], Raw_order.t,
                                  int option)
                                 Fieldslib.Field.t_with_perm -> int option) ->
    scale_profit_offset:(([< `Read | `Set_and_create ], Raw_order.t,
                          float option)
                         Fieldslib.Field.t_with_perm -> float option) ->
    scale_auto_reset:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                      Fieldslib.Field.t_with_perm -> bool) ->
    scale_init_position:(([< `Read | `Set_and_create ], Raw_order.t,
                          int option)
                         Fieldslib.Field.t_with_perm -> int option) ->
    scale_init_fill_quantity:(([< `Read | `Set_and_create ], Raw_order.t,
                               int option)
                              Fieldslib.Field.t_with_perm -> int option) ->
    scale_random_percent:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                          Fieldslib.Field.t_with_perm -> bool) ->
    hedge_type:(([< `Read | `Set_and_create ], Raw_order.t,
                 Raw_order.Hedge_type.t option)
                Fieldslib.Field.t_with_perm -> Raw_order.Hedge_type.t option) ->
    hedge_parameter:(([< `Read | `Set_and_create ], Raw_order.t,
                      string option)
                     Fieldslib.Field.t_with_perm -> string option) ->
    account_code:(([< `Read | `Set_and_create ], Raw_order.t,
                   Account_code.t option)
                  Fieldslib.Field.t_with_perm -> Account_code.t option) ->
    settling_firm:(([< `Read | `Set_and_create ], Raw_order.t, string option)
                   Fieldslib.Field.t_with_perm -> string option) ->
    clearing_account:(([< `Read | `Set_and_create ], Raw_order.t,
                       string option)
                      Fieldslib.Field.t_with_perm -> string option) ->
    clearing_intent:(([< `Read | `Set_and_create ], Raw_order.t,
                      Raw_order.Clearing_intent.t option)
                     Fieldslib.Field.t_with_perm ->
                     Raw_order.Clearing_intent.t option) ->
    algo_strategy:(([< `Read | `Set_and_create ], Raw_order.t, string option)
                   Fieldslib.Field.t_with_perm -> string option) ->
    request_pre_trade_information:(([< `Read | `Set_and_create ],
                                    Raw_order.t, bool)
                                   Fieldslib.Field.t_with_perm -> bool) ->
    not_held:(([< `Read | `Set_and_create ], Raw_order.t, bool)
              Fieldslib.Field.t_with_perm -> bool) ->
    Raw_order.t
  val iter :
    order_id:(([< `Read | `Set_and_create ], Raw_order.t, Order_id.t)
              Fieldslib.Field.t_with_perm -> 'a) ->
    action:(([< `Read | `Set_and_create ], Raw_order.t, string)
            Fieldslib.Field.t_with_perm -> 'b) ->
    quantity:(([< `Read | `Set_and_create ], Raw_order.t, Volume.t)
              Fieldslib.Field.t_with_perm -> 'c) ->
    order_type:(([< `Read | `Set_and_create ], Raw_order.t, string)
                Fieldslib.Field.t_with_perm -> 'd) ->
    limit_price:(([< `Read | `Set_and_create ], Raw_order.t, Price.t option)
                 Fieldslib.Field.t_with_perm -> 'e) ->
    stop_price:(([< `Read | `Set_and_create ], Raw_order.t, Price.t option)
                Fieldslib.Field.t_with_perm -> 'f) ->
    time_in_force:(([< `Read | `Set_and_create ], Raw_order.t,
                    Raw_order.Time_in_force.t option)
                   Fieldslib.Field.t_with_perm -> 'g) ->
    oca_group_name:(([< `Read | `Set_and_create ], Raw_order.t,
                     string option)
                    Fieldslib.Field.t_with_perm -> 'h) ->
    oca_type:(([< `Read | `Set_and_create ], Raw_order.t,
               Raw_order.Oca_type.t option)
              Fieldslib.Field.t_with_perm -> 'i) ->
    order_ref:(([< `Read | `Set_and_create ], Raw_order.t, string option)
               Fieldslib.Field.t_with_perm -> 'j) ->
    transmit:(([< `Read | `Set_and_create ], Raw_order.t, bool)
              Fieldslib.Field.t_with_perm -> 'k) ->
    parent_id:(([< `Read | `Set_and_create ], Raw_order.t, Order_id.t option)
               Fieldslib.Field.t_with_perm -> 'l) ->
    block_order:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                 Fieldslib.Field.t_with_perm -> 'm) ->
    sweep_to_fill:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                   Fieldslib.Field.t_with_perm -> 'n) ->
    display_size:(([< `Read | `Set_and_create ], Raw_order.t,
                   Volume.t option)
                  Fieldslib.Field.t_with_perm -> 'o) ->
    stop_trigger_method:(([< `Read | `Set_and_create ], Raw_order.t,
                          Raw_order.Stop_trigger_method.t)
                         Fieldslib.Field.t_with_perm -> 'p) ->
    outside_regular_trading_hours:(([< `Read | `Set_and_create ],
                                    Raw_order.t, bool)
                                   Fieldslib.Field.t_with_perm -> 'q) ->
    hidden:(([< `Read | `Set_and_create ], Raw_order.t, bool)
            Fieldslib.Field.t_with_perm -> 'r) ->
    good_after_date_time:(([< `Read | `Set_and_create ], Raw_order.t,
                           Core.Std.Time.t option)
                          Fieldslib.Field.t_with_perm -> 's) ->
    good_till_date_time:(([< `Read | `Set_and_create ], Raw_order.t,
                          Core.Std.Time.t option)
                         Fieldslib.Field.t_with_perm -> 't) ->
    override_percentage_constraints:(([< `Read | `Set_and_create ],
                                      Raw_order.t, bool)
                                     Fieldslib.Field.t_with_perm -> 'u) ->
    rule80A:(([< `Read | `Set_and_create ], Raw_order.t,
              Raw_order.Rule80A.t option)
             Fieldslib.Field.t_with_perm -> 'v) ->
    all_or_none:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                 Fieldslib.Field.t_with_perm -> 'w) ->
    minimum_quantity:(([< `Read | `Set_and_create ], Raw_order.t,
                       Volume.t option)
                      Fieldslib.Field.t_with_perm -> 'x) ->
    percent_offset:(([< `Read | `Set_and_create ], Raw_order.t, float option)
                    Fieldslib.Field.t_with_perm -> 'y) ->
    trailing_stop_price:(([< `Read | `Set_and_create ], Raw_order.t,
                          Price.t option)
                         Fieldslib.Field.t_with_perm -> 'z) ->
    trailing_percent:(([< `Read | `Set_and_create ], Raw_order.t,
                       float option)
                      Fieldslib.Field.t_with_perm -> 'a1) ->
    financial_advisor_group:(([< `Read | `Set_and_create ], Raw_order.t,
                              string option)
                             Fieldslib.Field.t_with_perm -> 'b1) ->
    financial_advisor_profile:(([< `Read | `Set_and_create ], Raw_order.t,
                                string option)
                               Fieldslib.Field.t_with_perm -> 'c1) ->
    financial_advisor_method:(([< `Read | `Set_and_create ], Raw_order.t,
                               string option)
                              Fieldslib.Field.t_with_perm -> 'd1) ->
    financial_advisor_percentage:(([< `Read | `Set_and_create ], Raw_order.t,
                                   string option)
                                  Fieldslib.Field.t_with_perm -> 'e1) ->
    open_close:(([< `Read | `Set_and_create ], Raw_order.t,
                 Raw_order.Open_close.t)
                Fieldslib.Field.t_with_perm -> 'f1) ->
    origin:(([< `Read | `Set_and_create ], Raw_order.t, Raw_order.Origin.t)
            Fieldslib.Field.t_with_perm -> 'g1) ->
    short_sale_slot:(([< `Read | `Set_and_create ], Raw_order.t, int option)
                     Fieldslib.Field.t_with_perm -> 'h1) ->
    designated_location:(([< `Read | `Set_and_create ], Raw_order.t,
                          string option)
                         Fieldslib.Field.t_with_perm -> 'i1) ->
    exemption_code:(([< `Read | `Set_and_create ], Raw_order.t, int)
                    Fieldslib.Field.t_with_perm -> 'j1) ->
    discretionary_amount:(([< `Read | `Set_and_create ], Raw_order.t,
                           float option)
                          Fieldslib.Field.t_with_perm -> 'k1) ->
    electronic_trade_only:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                           Fieldslib.Field.t_with_perm -> 'l1) ->
    firm_quote_only:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                     Fieldslib.Field.t_with_perm -> 'm1) ->
    nbbo_price_cap:(([< `Read | `Set_and_create ], Raw_order.t, float option)
                    Fieldslib.Field.t_with_perm -> 'n1) ->
    opt_out_smart_routing:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                           Fieldslib.Field.t_with_perm -> 'o1) ->
    auction_strategy:(([< `Read | `Set_and_create ], Raw_order.t,
                       Raw_order.Auction_strategy.t option)
                      Fieldslib.Field.t_with_perm -> 'p1) ->
    starting_price:(([< `Read | `Set_and_create ], Raw_order.t,
                     Price.t option)
                    Fieldslib.Field.t_with_perm -> 'q1) ->
    stock_reference_price:(([< `Read | `Set_and_create ], Raw_order.t,
                            Price.t option)
                           Fieldslib.Field.t_with_perm -> 'r1) ->
    delta:(([< `Read | `Set_and_create ], Raw_order.t, float option)
           Fieldslib.Field.t_with_perm -> 's1) ->
    lower_stock_price_range:(([< `Read | `Set_and_create ], Raw_order.t,
                              Price.t option)
                             Fieldslib.Field.t_with_perm -> 't1) ->
    upper_stock_price_range:(([< `Read | `Set_and_create ], Raw_order.t,
                              Price.t option)
                             Fieldslib.Field.t_with_perm -> 'u1) ->
    volatility:(([< `Read | `Set_and_create ], Raw_order.t, float option)
                Fieldslib.Field.t_with_perm -> 'v1) ->
    volatility_type:(([< `Read | `Set_and_create ], Raw_order.t,
                      Raw_order.Volatility_type.t option)
                     Fieldslib.Field.t_with_perm -> 'w1) ->
    continuous_update:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                       Fieldslib.Field.t_with_perm -> 'x1) ->
    reference_price_type:(([< `Read | `Set_and_create ], Raw_order.t,
                           Raw_order.Reference_price_type.t option)
                          Fieldslib.Field.t_with_perm -> 'y1) ->
    delta_neutral_order_type:(([< `Read | `Set_and_create ], Raw_order.t,
                               Order_type.t option)
                              Fieldslib.Field.t_with_perm -> 'z1) ->
    delta_neutral_aux_price:(([< `Read | `Set_and_create ], Raw_order.t,
                              Price.t option)
                             Fieldslib.Field.t_with_perm -> 'a2) ->
    delta_neutral_contract_id:(([< `Read | `Set_and_create ], Raw_order.t,
                                Contract_id.t option)
                               Fieldslib.Field.t_with_perm -> 'b2) ->
    delta_neutral_settling_firm:(([< `Read | `Set_and_create ], Raw_order.t,
                                  string option)
                                 Fieldslib.Field.t_with_perm -> 'c2) ->
    delta_neutral_clearing_account:(([< `Read | `Set_and_create ],
                                     Raw_order.t, string option)
                                    Fieldslib.Field.t_with_perm -> 'd2) ->
    delta_neutral_clearing_intent:(([< `Read | `Set_and_create ],
                                    Raw_order.t, string option)
                                   Fieldslib.Field.t_with_perm -> 'e2) ->
    basis_points:(([< `Read | `Set_and_create ], Raw_order.t, float option)
                  Fieldslib.Field.t_with_perm -> 'f2) ->
    basis_points_type:(([< `Read | `Set_and_create ], Raw_order.t,
                        int option)
                       Fieldslib.Field.t_with_perm -> 'g2) ->
    scale_initial_level_size:(([< `Read | `Set_and_create ], Raw_order.t,
                               Volume.t option)
                              Fieldslib.Field.t_with_perm -> 'h2) ->
    scale_subsequent_level_size:(([< `Read | `Set_and_create ], Raw_order.t,
                                  Volume.t option)
                                 Fieldslib.Field.t_with_perm -> 'i2) ->
    scale_price_increment:(([< `Read | `Set_and_create ], Raw_order.t,
                            float option)
                           Fieldslib.Field.t_with_perm -> 'j2) ->
    scale_price_adjust_value:(([< `Read | `Set_and_create ], Raw_order.t,
                               float option)
                              Fieldslib.Field.t_with_perm -> 'k2) ->
    scale_price_adjust_interval:(([< `Read | `Set_and_create ], Raw_order.t,
                                  int option)
                                 Fieldslib.Field.t_with_perm -> 'l2) ->
    scale_profit_offset:(([< `Read | `Set_and_create ], Raw_order.t,
                          float option)
                         Fieldslib.Field.t_with_perm -> 'm2) ->
    scale_auto_reset:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                      Fieldslib.Field.t_with_perm -> 'n2) ->
    scale_init_position:(([< `Read | `Set_and_create ], Raw_order.t,
                          int option)
                         Fieldslib.Field.t_with_perm -> 'o2) ->
    scale_init_fill_quantity:(([< `Read | `Set_and_create ], Raw_order.t,
                               int option)
                              Fieldslib.Field.t_with_perm -> 'p2) ->
    scale_random_percent:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                          Fieldslib.Field.t_with_perm -> 'q2) ->
    hedge_type:(([< `Read | `Set_and_create ], Raw_order.t,
                 Raw_order.Hedge_type.t option)
                Fieldslib.Field.t_with_perm -> 'r2) ->
    hedge_parameter:(([< `Read | `Set_and_create ], Raw_order.t,
                      string option)
                     Fieldslib.Field.t_with_perm -> 's2) ->
    account_code:(([< `Read | `Set_and_create ], Raw_order.t,
                   Account_code.t option)
                  Fieldslib.Field.t_with_perm -> 't2) ->
    settling_firm:(([< `Read | `Set_and_create ], Raw_order.t, string option)
                   Fieldslib.Field.t_with_perm -> 'u2) ->
    clearing_account:(([< `Read | `Set_and_create ], Raw_order.t,
                       string option)
                      Fieldslib.Field.t_with_perm -> 'v2) ->
    clearing_intent:(([< `Read | `Set_and_create ], Raw_order.t,
                      Raw_order.Clearing_intent.t option)
                     Fieldslib.Field.t_with_perm -> 'w2) ->
    algo_strategy:(([< `Read | `Set_and_create ], Raw_order.t, string option)
                   Fieldslib.Field.t_with_perm -> 'x2) ->
    request_pre_trade_information:(([< `Read | `Set_and_create ],
                                    Raw_order.t, bool)
                                   Fieldslib.Field.t_with_perm -> 'y2) ->
    not_held:(([< `Read | `Set_and_create ], Raw_order.t, bool)
              Fieldslib.Field.t_with_perm -> 'z2) ->
    'z2
  val fold :
    init:'->
    order_id:('->
              ([< `Read | `Set_and_create ], Raw_order.t, Order_id.t)
              Fieldslib.Field.t_with_perm -> 'b) ->
    action:('->
            ([< `Read | `Set_and_create ], Raw_order.t, string)
            Fieldslib.Field.t_with_perm -> 'c) ->
    quantity:('->
              ([< `Read | `Set_and_create ], Raw_order.t, Volume.t)
              Fieldslib.Field.t_with_perm -> 'd) ->
    order_type:('->
                ([< `Read | `Set_and_create ], Raw_order.t, string)
                Fieldslib.Field.t_with_perm -> 'e) ->
    limit_price:('->
                 ([< `Read | `Set_and_create ], Raw_order.t, Price.t option)
                 Fieldslib.Field.t_with_perm -> 'f) ->
    stop_price:('->
                ([< `Read | `Set_and_create ], Raw_order.t, Price.t option)
                Fieldslib.Field.t_with_perm -> 'g) ->
    time_in_force:('->
                   ([< `Read | `Set_and_create ], Raw_order.t,
                    Raw_order.Time_in_force.t option)
                   Fieldslib.Field.t_with_perm -> 'h) ->
    oca_group_name:('->
                    ([< `Read | `Set_and_create ], Raw_order.t,
                     string option)
                    Fieldslib.Field.t_with_perm -> 'i) ->
    oca_type:('->
              ([< `Read | `Set_and_create ], Raw_order.t,
               Raw_order.Oca_type.t option)
              Fieldslib.Field.t_with_perm -> 'j) ->
    order_ref:('->
               ([< `Read | `Set_and_create ], Raw_order.t, string option)
               Fieldslib.Field.t_with_perm -> 'k) ->
    transmit:('->
              ([< `Read | `Set_and_create ], Raw_order.t, bool)
              Fieldslib.Field.t_with_perm -> 'l) ->
    parent_id:('->
               ([< `Read | `Set_and_create ], Raw_order.t, Order_id.t option)
               Fieldslib.Field.t_with_perm -> 'm) ->
    block_order:('->
                 ([< `Read | `Set_and_create ], Raw_order.t, bool)
                 Fieldslib.Field.t_with_perm -> 'n) ->
    sweep_to_fill:('->
                   ([< `Read | `Set_and_create ], Raw_order.t, bool)
                   Fieldslib.Field.t_with_perm -> 'o) ->
    display_size:('->
                  ([< `Read | `Set_and_create ], Raw_order.t,
                   Volume.t option)
                  Fieldslib.Field.t_with_perm -> 'p) ->
    stop_trigger_method:('->
                         ([< `Read | `Set_and_create ], Raw_order.t,
                          Raw_order.Stop_trigger_method.t)
                         Fieldslib.Field.t_with_perm -> 'q) ->
    outside_regular_trading_hours:('->
                                   ([< `Read | `Set_and_create ],
                                    Raw_order.t, bool)
                                   Fieldslib.Field.t_with_perm -> 'r) ->
    hidden:('->
            ([< `Read | `Set_and_create ], Raw_order.t, bool)
            Fieldslib.Field.t_with_perm -> 's) ->
    good_after_date_time:('->
                          ([< `Read | `Set_and_create ], Raw_order.t,
                           Core.Std.Time.t option)
                          Fieldslib.Field.t_with_perm -> 't) ->
    good_till_date_time:('->
                         ([< `Read | `Set_and_create ], Raw_order.t,
                          Core.Std.Time.t option)
                         Fieldslib.Field.t_with_perm -> 'u) ->
    override_percentage_constraints:('->
                                     ([< `Read | `Set_and_create ],
                                      Raw_order.t, bool)
                                     Fieldslib.Field.t_with_perm -> 'v) ->
    rule80A:('->
             ([< `Read | `Set_and_create ], Raw_order.t,
              Raw_order.Rule80A.t option)
             Fieldslib.Field.t_with_perm -> 'w) ->
    all_or_none:('->
                 ([< `Read | `Set_and_create ], Raw_order.t, bool)
                 Fieldslib.Field.t_with_perm -> 'x) ->
    minimum_quantity:('->
                      ([< `Read | `Set_and_create ], Raw_order.t,
                       Volume.t option)
                      Fieldslib.Field.t_with_perm -> 'y) ->
    percent_offset:('->
                    ([< `Read | `Set_and_create ], Raw_order.t, float option)
                    Fieldslib.Field.t_with_perm -> 'z) ->
    trailing_stop_price:('->
                         ([< `Read | `Set_and_create ], Raw_order.t,
                          Price.t option)
                         Fieldslib.Field.t_with_perm -> 'a1) ->
    trailing_percent:('a1 ->
                      ([< `Read | `Set_and_create ], Raw_order.t,
                       float option)
                      Fieldslib.Field.t_with_perm -> 'b1) ->
    financial_advisor_group:('b1 ->
                             ([< `Read | `Set_and_create ], Raw_order.t,
                              string option)
                             Fieldslib.Field.t_with_perm -> 'c1) ->
    financial_advisor_profile:('c1 ->
                               ([< `Read | `Set_and_create ], Raw_order.t,
                                string option)
                               Fieldslib.Field.t_with_perm -> 'd1) ->
    financial_advisor_method:('d1 ->
                              ([< `Read | `Set_and_create ], Raw_order.t,
                               string option)
                              Fieldslib.Field.t_with_perm -> 'e1) ->
    financial_advisor_percentage:('e1 ->
                                  ([< `Read | `Set_and_create ], Raw_order.t,
                                   string option)
                                  Fieldslib.Field.t_with_perm -> 'f1) ->
    open_close:('f1 ->
                ([< `Read | `Set_and_create ], Raw_order.t,
                 Raw_order.Open_close.t)
                Fieldslib.Field.t_with_perm -> 'g1) ->
    origin:('g1 ->
            ([< `Read | `Set_and_create ], Raw_order.t, Raw_order.Origin.t)
            Fieldslib.Field.t_with_perm -> 'h1) ->
    short_sale_slot:('h1 ->
                     ([< `Read | `Set_and_create ], Raw_order.t, int option)
                     Fieldslib.Field.t_with_perm -> 'i1) ->
    designated_location:('i1 ->
                         ([< `Read | `Set_and_create ], Raw_order.t,
                          string option)
                         Fieldslib.Field.t_with_perm -> 'j1) ->
    exemption_code:('j1 ->
                    ([< `Read | `Set_and_create ], Raw_order.t, int)
                    Fieldslib.Field.t_with_perm -> 'k1) ->
    discretionary_amount:('k1 ->
                          ([< `Read | `Set_and_create ], Raw_order.t,
                           float option)
                          Fieldslib.Field.t_with_perm -> 'l1) ->
    electronic_trade_only:('l1 ->
                           ([< `Read | `Set_and_create ], Raw_order.t, bool)
                           Fieldslib.Field.t_with_perm -> 'm1) ->
    firm_quote_only:('m1 ->
                     ([< `Read | `Set_and_create ], Raw_order.t, bool)
                     Fieldslib.Field.t_with_perm -> 'n1) ->
    nbbo_price_cap:('n1 ->
                    ([< `Read | `Set_and_create ], Raw_order.t, float option)
                    Fieldslib.Field.t_with_perm -> 'o1) ->
    opt_out_smart_routing:('o1 ->
                           ([< `Read | `Set_and_create ], Raw_order.t, bool)
                           Fieldslib.Field.t_with_perm -> 'p1) ->
    auction_strategy:('p1 ->
                      ([< `Read | `Set_and_create ], Raw_order.t,
                       Raw_order.Auction_strategy.t option)
                      Fieldslib.Field.t_with_perm -> 'q1) ->
    starting_price:('q1 ->
                    ([< `Read | `Set_and_create ], Raw_order.t,
                     Price.t option)
                    Fieldslib.Field.t_with_perm -> 'r1) ->
    stock_reference_price:('r1 ->
                           ([< `Read | `Set_and_create ], Raw_order.t,
                            Price.t option)
                           Fieldslib.Field.t_with_perm -> 's1) ->
    delta:('s1 ->
           ([< `Read | `Set_and_create ], Raw_order.t, float option)
           Fieldslib.Field.t_with_perm -> 't1) ->
    lower_stock_price_range:('t1 ->
                             ([< `Read | `Set_and_create ], Raw_order.t,
                              Price.t option)
                             Fieldslib.Field.t_with_perm -> 'u1) ->
    upper_stock_price_range:('u1 ->
                             ([< `Read | `Set_and_create ], Raw_order.t,
                              Price.t option)
                             Fieldslib.Field.t_with_perm -> 'v1) ->
    volatility:('v1 ->
                ([< `Read | `Set_and_create ], Raw_order.t, float option)
                Fieldslib.Field.t_with_perm -> 'w1) ->
    volatility_type:('w1 ->
                     ([< `Read | `Set_and_create ], Raw_order.t,
                      Raw_order.Volatility_type.t option)
                     Fieldslib.Field.t_with_perm -> 'x1) ->
    continuous_update:('x1 ->
                       ([< `Read | `Set_and_create ], Raw_order.t, bool)
                       Fieldslib.Field.t_with_perm -> 'y1) ->
    reference_price_type:('y1 ->
                          ([< `Read | `Set_and_create ], Raw_order.t,
                           Raw_order.Reference_price_type.t option)
                          Fieldslib.Field.t_with_perm -> 'z1) ->
    delta_neutral_order_type:('z1 ->
                              ([< `Read | `Set_and_create ], Raw_order.t,
                               Order_type.t option)
                              Fieldslib.Field.t_with_perm -> 'a2) ->
    delta_neutral_aux_price:('a2 ->
                             ([< `Read | `Set_and_create ], Raw_order.t,
                              Price.t option)
                             Fieldslib.Field.t_with_perm -> 'b2) ->
    delta_neutral_contract_id:('b2 ->
                               ([< `Read | `Set_and_create ], Raw_order.t,
                                Contract_id.t option)
                               Fieldslib.Field.t_with_perm -> 'c2) ->
    delta_neutral_settling_firm:('c2 ->
                                 ([< `Read | `Set_and_create ], Raw_order.t,
                                  string option)
                                 Fieldslib.Field.t_with_perm -> 'd2) ->
    delta_neutral_clearing_account:('d2 ->
                                    ([< `Read | `Set_and_create ],
                                     Raw_order.t, string option)
                                    Fieldslib.Field.t_with_perm -> 'e2) ->
    delta_neutral_clearing_intent:('e2 ->
                                   ([< `Read | `Set_and_create ],
                                    Raw_order.t, string option)
                                   Fieldslib.Field.t_with_perm -> 'f2) ->
    basis_points:('f2 ->
                  ([< `Read | `Set_and_create ], Raw_order.t, float option)
                  Fieldslib.Field.t_with_perm -> 'g2) ->
    basis_points_type:('g2 ->
                       ([< `Read | `Set_and_create ], Raw_order.t,
                        int option)
                       Fieldslib.Field.t_with_perm -> 'h2) ->
    scale_initial_level_size:('h2 ->
                              ([< `Read | `Set_and_create ], Raw_order.t,
                               Volume.t option)
                              Fieldslib.Field.t_with_perm -> 'i2) ->
    scale_subsequent_level_size:('i2 ->
                                 ([< `Read | `Set_and_create ], Raw_order.t,
                                  Volume.t option)
                                 Fieldslib.Field.t_with_perm -> 'j2) ->
    scale_price_increment:('j2 ->
                           ([< `Read | `Set_and_create ], Raw_order.t,
                            float option)
                           Fieldslib.Field.t_with_perm -> 'k2) ->
    scale_price_adjust_value:('k2 ->
                              ([< `Read | `Set_and_create ], Raw_order.t,
                               float option)
                              Fieldslib.Field.t_with_perm -> 'l2) ->
    scale_price_adjust_interval:('l2 ->
                                 ([< `Read | `Set_and_create ], Raw_order.t,
                                  int option)
                                 Fieldslib.Field.t_with_perm -> 'm2) ->
    scale_profit_offset:('m2 ->
                         ([< `Read | `Set_and_create ], Raw_order.t,
                          float option)
                         Fieldslib.Field.t_with_perm -> 'n2) ->
    scale_auto_reset:('n2 ->
                      ([< `Read | `Set_and_create ], Raw_order.t, bool)
                      Fieldslib.Field.t_with_perm -> 'o2) ->
    scale_init_position:('o2 ->
                         ([< `Read | `Set_and_create ], Raw_order.t,
                          int option)
                         Fieldslib.Field.t_with_perm -> 'p2) ->
    scale_init_fill_quantity:('p2 ->
                              ([< `Read | `Set_and_create ], Raw_order.t,
                               int option)
                              Fieldslib.Field.t_with_perm -> 'q2) ->
    scale_random_percent:('q2 ->
                          ([< `Read | `Set_and_create ], Raw_order.t, bool)
                          Fieldslib.Field.t_with_perm -> 'r2) ->
    hedge_type:('r2 ->
                ([< `Read | `Set_and_create ], Raw_order.t,
                 Raw_order.Hedge_type.t option)
                Fieldslib.Field.t_with_perm -> 's2) ->
    hedge_parameter:('s2 ->
                     ([< `Read | `Set_and_create ], Raw_order.t,
                      string option)
                     Fieldslib.Field.t_with_perm -> 't2) ->
    account_code:('t2 ->
                  ([< `Read | `Set_and_create ], Raw_order.t,
                   Account_code.t option)
                  Fieldslib.Field.t_with_perm -> 'u2) ->
    settling_firm:('u2 ->
                   ([< `Read | `Set_and_create ], Raw_order.t, string option)
                   Fieldslib.Field.t_with_perm -> 'v2) ->
    clearing_account:('v2 ->
                      ([< `Read | `Set_and_create ], Raw_order.t,
                       string option)
                      Fieldslib.Field.t_with_perm -> 'w2) ->
    clearing_intent:('w2 ->
                     ([< `Read | `Set_and_create ], Raw_order.t,
                      Raw_order.Clearing_intent.t option)
                     Fieldslib.Field.t_with_perm -> 'x2) ->
    algo_strategy:('x2 ->
                   ([< `Read | `Set_and_create ], Raw_order.t, string option)
                   Fieldslib.Field.t_with_perm -> 'y2) ->
    request_pre_trade_information:('y2 ->
                                   ([< `Read | `Set_and_create ],
                                    Raw_order.t, bool)
                                   Fieldslib.Field.t_with_perm -> 'z2) ->
    not_held:('z2 ->
              ([< `Read | `Set_and_create ], Raw_order.t, bool)
              Fieldslib.Field.t_with_perm -> 'a3) ->
    'a3
  val map_poly :
    ([< `Read | `Set_and_create ], Raw_order.t, 'a) Fieldslib.Field.user ->
    'a list
  val for_all :
    order_id:(([< `Read | `Set_and_create ], Raw_order.t, Order_id.t)
              Fieldslib.Field.t_with_perm -> bool) ->
    action:(([< `Read | `Set_and_create ], Raw_order.t, string)
            Fieldslib.Field.t_with_perm -> bool) ->
    quantity:(([< `Read | `Set_and_create ], Raw_order.t, Volume.t)
              Fieldslib.Field.t_with_perm -> bool) ->
    order_type:(([< `Read | `Set_and_create ], Raw_order.t, string)
                Fieldslib.Field.t_with_perm -> bool) ->
    limit_price:(([< `Read | `Set_and_create ], Raw_order.t, Price.t option)
                 Fieldslib.Field.t_with_perm -> bool) ->
    stop_price:(([< `Read | `Set_and_create ], Raw_order.t, Price.t option)
                Fieldslib.Field.t_with_perm -> bool) ->
    time_in_force:(([< `Read | `Set_and_create ], Raw_order.t,
                    Raw_order.Time_in_force.t option)
                   Fieldslib.Field.t_with_perm -> bool) ->
    oca_group_name:(([< `Read | `Set_and_create ], Raw_order.t,
                     string option)
                    Fieldslib.Field.t_with_perm -> bool) ->
    oca_type:(([< `Read | `Set_and_create ], Raw_order.t,
               Raw_order.Oca_type.t option)
              Fieldslib.Field.t_with_perm -> bool) ->
    order_ref:(([< `Read | `Set_and_create ], Raw_order.t, string option)
               Fieldslib.Field.t_with_perm -> bool) ->
    transmit:(([< `Read | `Set_and_create ], Raw_order.t, bool)
              Fieldslib.Field.t_with_perm -> bool) ->
    parent_id:(([< `Read | `Set_and_create ], Raw_order.t, Order_id.t option)
               Fieldslib.Field.t_with_perm -> bool) ->
    block_order:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                 Fieldslib.Field.t_with_perm -> bool) ->
    sweep_to_fill:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                   Fieldslib.Field.t_with_perm -> bool) ->
    display_size:(([< `Read | `Set_and_create ], Raw_order.t,
                   Volume.t option)
                  Fieldslib.Field.t_with_perm -> bool) ->
    stop_trigger_method:(([< `Read | `Set_and_create ], Raw_order.t,
                          Raw_order.Stop_trigger_method.t)
                         Fieldslib.Field.t_with_perm -> bool) ->
    outside_regular_trading_hours:(([< `Read | `Set_and_create ],
                                    Raw_order.t, bool)
                                   Fieldslib.Field.t_with_perm -> bool) ->
    hidden:(([< `Read | `Set_and_create ], Raw_order.t, bool)
            Fieldslib.Field.t_with_perm -> bool) ->
    good_after_date_time:(([< `Read | `Set_and_create ], Raw_order.t,
                           Core.Std.Time.t option)
                          Fieldslib.Field.t_with_perm -> bool) ->
    good_till_date_time:(([< `Read | `Set_and_create ], Raw_order.t,
                          Core.Std.Time.t option)
                         Fieldslib.Field.t_with_perm -> bool) ->
    override_percentage_constraints:(([< `Read | `Set_and_create ],
                                      Raw_order.t, bool)
                                     Fieldslib.Field.t_with_perm -> bool) ->
    rule80A:(([< `Read | `Set_and_create ], Raw_order.t,
              Raw_order.Rule80A.t option)
             Fieldslib.Field.t_with_perm -> bool) ->
    all_or_none:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                 Fieldslib.Field.t_with_perm -> bool) ->
    minimum_quantity:(([< `Read | `Set_and_create ], Raw_order.t,
                       Volume.t option)
                      Fieldslib.Field.t_with_perm -> bool) ->
    percent_offset:(([< `Read | `Set_and_create ], Raw_order.t, float option)
                    Fieldslib.Field.t_with_perm -> bool) ->
    trailing_stop_price:(([< `Read | `Set_and_create ], Raw_order.t,
                          Price.t option)
                         Fieldslib.Field.t_with_perm -> bool) ->
    trailing_percent:(([< `Read | `Set_and_create ], Raw_order.t,
                       float option)
                      Fieldslib.Field.t_with_perm -> bool) ->
    financial_advisor_group:(([< `Read | `Set_and_create ], Raw_order.t,
                              string option)
                             Fieldslib.Field.t_with_perm -> bool) ->
    financial_advisor_profile:(([< `Read | `Set_and_create ], Raw_order.t,
                                string option)
                               Fieldslib.Field.t_with_perm -> bool) ->
    financial_advisor_method:(([< `Read | `Set_and_create ], Raw_order.t,
                               string option)
                              Fieldslib.Field.t_with_perm -> bool) ->
    financial_advisor_percentage:(([< `Read | `Set_and_create ], Raw_order.t,
                                   string option)
                                  Fieldslib.Field.t_with_perm -> bool) ->
    open_close:(([< `Read | `Set_and_create ], Raw_order.t,
                 Raw_order.Open_close.t)
                Fieldslib.Field.t_with_perm -> bool) ->
    origin:(([< `Read | `Set_and_create ], Raw_order.t, Raw_order.Origin.t)
            Fieldslib.Field.t_with_perm -> bool) ->
    short_sale_slot:(([< `Read | `Set_and_create ], Raw_order.t, int option)
                     Fieldslib.Field.t_with_perm -> bool) ->
    designated_location:(([< `Read | `Set_and_create ], Raw_order.t,
                          string option)
                         Fieldslib.Field.t_with_perm -> bool) ->
    exemption_code:(([< `Read | `Set_and_create ], Raw_order.t, int)
                    Fieldslib.Field.t_with_perm -> bool) ->
    discretionary_amount:(([< `Read | `Set_and_create ], Raw_order.t,
                           float option)
                          Fieldslib.Field.t_with_perm -> bool) ->
    electronic_trade_only:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                           Fieldslib.Field.t_with_perm -> bool) ->
    firm_quote_only:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                     Fieldslib.Field.t_with_perm -> bool) ->
    nbbo_price_cap:(([< `Read | `Set_and_create ], Raw_order.t, float option)
                    Fieldslib.Field.t_with_perm -> bool) ->
    opt_out_smart_routing:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                           Fieldslib.Field.t_with_perm -> bool) ->
    auction_strategy:(([< `Read | `Set_and_create ], Raw_order.t,
                       Raw_order.Auction_strategy.t option)
                      Fieldslib.Field.t_with_perm -> bool) ->
    starting_price:(([< `Read | `Set_and_create ], Raw_order.t,
                     Price.t option)
                    Fieldslib.Field.t_with_perm -> bool) ->
    stock_reference_price:(([< `Read | `Set_and_create ], Raw_order.t,
                            Price.t option)
                           Fieldslib.Field.t_with_perm -> bool) ->
    delta:(([< `Read | `Set_and_create ], Raw_order.t, float option)
           Fieldslib.Field.t_with_perm -> bool) ->
    lower_stock_price_range:(([< `Read | `Set_and_create ], Raw_order.t,
                              Price.t option)
                             Fieldslib.Field.t_with_perm -> bool) ->
    upper_stock_price_range:(([< `Read | `Set_and_create ], Raw_order.t,
                              Price.t option)
                             Fieldslib.Field.t_with_perm -> bool) ->
    volatility:(([< `Read | `Set_and_create ], Raw_order.t, float option)
                Fieldslib.Field.t_with_perm -> bool) ->
    volatility_type:(([< `Read | `Set_and_create ], Raw_order.t,
                      Raw_order.Volatility_type.t option)
                     Fieldslib.Field.t_with_perm -> bool) ->
    continuous_update:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                       Fieldslib.Field.t_with_perm -> bool) ->
    reference_price_type:(([< `Read | `Set_and_create ], Raw_order.t,
                           Raw_order.Reference_price_type.t option)
                          Fieldslib.Field.t_with_perm -> bool) ->
    delta_neutral_order_type:(([< `Read | `Set_and_create ], Raw_order.t,
                               Order_type.t option)
                              Fieldslib.Field.t_with_perm -> bool) ->
    delta_neutral_aux_price:(([< `Read | `Set_and_create ], Raw_order.t,
                              Price.t option)
                             Fieldslib.Field.t_with_perm -> bool) ->
    delta_neutral_contract_id:(([< `Read | `Set_and_create ], Raw_order.t,
                                Contract_id.t option)
                               Fieldslib.Field.t_with_perm -> bool) ->
    delta_neutral_settling_firm:(([< `Read | `Set_and_create ], Raw_order.t,
                                  string option)
                                 Fieldslib.Field.t_with_perm -> bool) ->
    delta_neutral_clearing_account:(([< `Read | `Set_and_create ],
                                     Raw_order.t, string option)
                                    Fieldslib.Field.t_with_perm -> bool) ->
    delta_neutral_clearing_intent:(([< `Read | `Set_and_create ],
                                    Raw_order.t, string option)
                                   Fieldslib.Field.t_with_perm -> bool) ->
    basis_points:(([< `Read | `Set_and_create ], Raw_order.t, float option)
                  Fieldslib.Field.t_with_perm -> bool) ->
    basis_points_type:(([< `Read | `Set_and_create ], Raw_order.t,
                        int option)
                       Fieldslib.Field.t_with_perm -> bool) ->
    scale_initial_level_size:(([< `Read | `Set_and_create ], Raw_order.t,
                               Volume.t option)
                              Fieldslib.Field.t_with_perm -> bool) ->
    scale_subsequent_level_size:(([< `Read | `Set_and_create ], Raw_order.t,
                                  Volume.t option)
                                 Fieldslib.Field.t_with_perm -> bool) ->
    scale_price_increment:(([< `Read | `Set_and_create ], Raw_order.t,
                            float option)
                           Fieldslib.Field.t_with_perm -> bool) ->
    scale_price_adjust_value:(([< `Read | `Set_and_create ], Raw_order.t,
                               float option)
                              Fieldslib.Field.t_with_perm -> bool) ->
    scale_price_adjust_interval:(([< `Read | `Set_and_create ], Raw_order.t,
                                  int option)
                                 Fieldslib.Field.t_with_perm -> bool) ->
    scale_profit_offset:(([< `Read | `Set_and_create ], Raw_order.t,
                          float option)
                         Fieldslib.Field.t_with_perm -> bool) ->
    scale_auto_reset:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                      Fieldslib.Field.t_with_perm -> bool) ->
    scale_init_position:(([< `Read | `Set_and_create ], Raw_order.t,
                          int option)
                         Fieldslib.Field.t_with_perm -> bool) ->
    scale_init_fill_quantity:(([< `Read | `Set_and_create ], Raw_order.t,
                               int option)
                              Fieldslib.Field.t_with_perm -> bool) ->
    scale_random_percent:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                          Fieldslib.Field.t_with_perm -> bool) ->
    hedge_type:(([< `Read | `Set_and_create ], Raw_order.t,
                 Raw_order.Hedge_type.t option)
                Fieldslib.Field.t_with_perm -> bool) ->
    hedge_parameter:(([< `Read | `Set_and_create ], Raw_order.t,
                      string option)
                     Fieldslib.Field.t_with_perm -> bool) ->
    account_code:(([< `Read | `Set_and_create ], Raw_order.t,
                   Account_code.t option)
                  Fieldslib.Field.t_with_perm -> bool) ->
    settling_firm:(([< `Read | `Set_and_create ], Raw_order.t, string option)
                   Fieldslib.Field.t_with_perm -> bool) ->
    clearing_account:(([< `Read | `Set_and_create ], Raw_order.t,
                       string option)
                      Fieldslib.Field.t_with_perm -> bool) ->
    clearing_intent:(([< `Read | `Set_and_create ], Raw_order.t,
                      Raw_order.Clearing_intent.t option)
                     Fieldslib.Field.t_with_perm -> bool) ->
    algo_strategy:(([< `Read | `Set_and_create ], Raw_order.t, string option)
                   Fieldslib.Field.t_with_perm -> bool) ->
    request_pre_trade_information:(([< `Read | `Set_and_create ],
                                    Raw_order.t, bool)
                                   Fieldslib.Field.t_with_perm -> bool) ->
    not_held:(([< `Read | `Set_and_create ], Raw_order.t, bool)
              Fieldslib.Field.t_with_perm -> bool) ->
    bool
  val exists :
    order_id:(([< `Read | `Set_and_create ], Raw_order.t, Order_id.t)
              Fieldslib.Field.t_with_perm -> bool) ->
    action:(([< `Read | `Set_and_create ], Raw_order.t, string)
            Fieldslib.Field.t_with_perm -> bool) ->
    quantity:(([< `Read | `Set_and_create ], Raw_order.t, Volume.t)
              Fieldslib.Field.t_with_perm -> bool) ->
    order_type:(([< `Read | `Set_and_create ], Raw_order.t, string)
                Fieldslib.Field.t_with_perm -> bool) ->
    limit_price:(([< `Read | `Set_and_create ], Raw_order.t, Price.t option)
                 Fieldslib.Field.t_with_perm -> bool) ->
    stop_price:(([< `Read | `Set_and_create ], Raw_order.t, Price.t option)
                Fieldslib.Field.t_with_perm -> bool) ->
    time_in_force:(([< `Read | `Set_and_create ], Raw_order.t,
                    Raw_order.Time_in_force.t option)
                   Fieldslib.Field.t_with_perm -> bool) ->
    oca_group_name:(([< `Read | `Set_and_create ], Raw_order.t,
                     string option)
                    Fieldslib.Field.t_with_perm -> bool) ->
    oca_type:(([< `Read | `Set_and_create ], Raw_order.t,
               Raw_order.Oca_type.t option)
              Fieldslib.Field.t_with_perm -> bool) ->
    order_ref:(([< `Read | `Set_and_create ], Raw_order.t, string option)
               Fieldslib.Field.t_with_perm -> bool) ->
    transmit:(([< `Read | `Set_and_create ], Raw_order.t, bool)
              Fieldslib.Field.t_with_perm -> bool) ->
    parent_id:(([< `Read | `Set_and_create ], Raw_order.t, Order_id.t option)
               Fieldslib.Field.t_with_perm -> bool) ->
    block_order:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                 Fieldslib.Field.t_with_perm -> bool) ->
    sweep_to_fill:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                   Fieldslib.Field.t_with_perm -> bool) ->
    display_size:(([< `Read | `Set_and_create ], Raw_order.t,
                   Volume.t option)
                  Fieldslib.Field.t_with_perm -> bool) ->
    stop_trigger_method:(([< `Read | `Set_and_create ], Raw_order.t,
                          Raw_order.Stop_trigger_method.t)
                         Fieldslib.Field.t_with_perm -> bool) ->
    outside_regular_trading_hours:(([< `Read | `Set_and_create ],
                                    Raw_order.t, bool)
                                   Fieldslib.Field.t_with_perm -> bool) ->
    hidden:(([< `Read | `Set_and_create ], Raw_order.t, bool)
            Fieldslib.Field.t_with_perm -> bool) ->
    good_after_date_time:(([< `Read | `Set_and_create ], Raw_order.t,
                           Core.Std.Time.t option)
                          Fieldslib.Field.t_with_perm -> bool) ->
    good_till_date_time:(([< `Read | `Set_and_create ], Raw_order.t,
                          Core.Std.Time.t option)
                         Fieldslib.Field.t_with_perm -> bool) ->
    override_percentage_constraints:(([< `Read | `Set_and_create ],
                                      Raw_order.t, bool)
                                     Fieldslib.Field.t_with_perm -> bool) ->
    rule80A:(([< `Read | `Set_and_create ], Raw_order.t,
              Raw_order.Rule80A.t option)
             Fieldslib.Field.t_with_perm -> bool) ->
    all_or_none:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                 Fieldslib.Field.t_with_perm -> bool) ->
    minimum_quantity:(([< `Read | `Set_and_create ], Raw_order.t,
                       Volume.t option)
                      Fieldslib.Field.t_with_perm -> bool) ->
    percent_offset:(([< `Read | `Set_and_create ], Raw_order.t, float option)
                    Fieldslib.Field.t_with_perm -> bool) ->
    trailing_stop_price:(([< `Read | `Set_and_create ], Raw_order.t,
                          Price.t option)
                         Fieldslib.Field.t_with_perm -> bool) ->
    trailing_percent:(([< `Read | `Set_and_create ], Raw_order.t,
                       float option)
                      Fieldslib.Field.t_with_perm -> bool) ->
    financial_advisor_group:(([< `Read | `Set_and_create ], Raw_order.t,
                              string option)
                             Fieldslib.Field.t_with_perm -> bool) ->
    financial_advisor_profile:(([< `Read | `Set_and_create ], Raw_order.t,
                                string option)
                               Fieldslib.Field.t_with_perm -> bool) ->
    financial_advisor_method:(([< `Read | `Set_and_create ], Raw_order.t,
                               string option)
                              Fieldslib.Field.t_with_perm -> bool) ->
    financial_advisor_percentage:(([< `Read | `Set_and_create ], Raw_order.t,
                                   string option)
                                  Fieldslib.Field.t_with_perm -> bool) ->
    open_close:(([< `Read | `Set_and_create ], Raw_order.t,
                 Raw_order.Open_close.t)
                Fieldslib.Field.t_with_perm -> bool) ->
    origin:(([< `Read | `Set_and_create ], Raw_order.t, Raw_order.Origin.t)
            Fieldslib.Field.t_with_perm -> bool) ->
    short_sale_slot:(([< `Read | `Set_and_create ], Raw_order.t, int option)
                     Fieldslib.Field.t_with_perm -> bool) ->
    designated_location:(([< `Read | `Set_and_create ], Raw_order.t,
                          string option)
                         Fieldslib.Field.t_with_perm -> bool) ->
    exemption_code:(([< `Read | `Set_and_create ], Raw_order.t, int)
                    Fieldslib.Field.t_with_perm -> bool) ->
    discretionary_amount:(([< `Read | `Set_and_create ], Raw_order.t,
                           float option)
                          Fieldslib.Field.t_with_perm -> bool) ->
    electronic_trade_only:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                           Fieldslib.Field.t_with_perm -> bool) ->
    firm_quote_only:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                     Fieldslib.Field.t_with_perm -> bool) ->
    nbbo_price_cap:(([< `Read | `Set_and_create ], Raw_order.t, float option)
                    Fieldslib.Field.t_with_perm -> bool) ->
    opt_out_smart_routing:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                           Fieldslib.Field.t_with_perm -> bool) ->
    auction_strategy:(([< `Read | `Set_and_create ], Raw_order.t,
                       Raw_order.Auction_strategy.t option)
                      Fieldslib.Field.t_with_perm -> bool) ->
    starting_price:(([< `Read | `Set_and_create ], Raw_order.t,
                     Price.t option)
                    Fieldslib.Field.t_with_perm -> bool) ->
    stock_reference_price:(([< `Read | `Set_and_create ], Raw_order.t,
                            Price.t option)
                           Fieldslib.Field.t_with_perm -> bool) ->
    delta:(([< `Read | `Set_and_create ], Raw_order.t, float option)
           Fieldslib.Field.t_with_perm -> bool) ->
    lower_stock_price_range:(([< `Read | `Set_and_create ], Raw_order.t,
                              Price.t option)
                             Fieldslib.Field.t_with_perm -> bool) ->
    upper_stock_price_range:(([< `Read | `Set_and_create ], Raw_order.t,
                              Price.t option)
                             Fieldslib.Field.t_with_perm -> bool) ->
    volatility:(([< `Read | `Set_and_create ], Raw_order.t, float option)
                Fieldslib.Field.t_with_perm -> bool) ->
    volatility_type:(([< `Read | `Set_and_create ], Raw_order.t,
                      Raw_order.Volatility_type.t option)
                     Fieldslib.Field.t_with_perm -> bool) ->
    continuous_update:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                       Fieldslib.Field.t_with_perm -> bool) ->
    reference_price_type:(([< `Read | `Set_and_create ], Raw_order.t,
                           Raw_order.Reference_price_type.t option)
                          Fieldslib.Field.t_with_perm -> bool) ->
    delta_neutral_order_type:(([< `Read | `Set_and_create ], Raw_order.t,
                               Order_type.t option)
                              Fieldslib.Field.t_with_perm -> bool) ->
    delta_neutral_aux_price:(([< `Read | `Set_and_create ], Raw_order.t,
                              Price.t option)
                             Fieldslib.Field.t_with_perm -> bool) ->
    delta_neutral_contract_id:(([< `Read | `Set_and_create ], Raw_order.t,
                                Contract_id.t option)
                               Fieldslib.Field.t_with_perm -> bool) ->
    delta_neutral_settling_firm:(([< `Read | `Set_and_create ], Raw_order.t,
                                  string option)
                                 Fieldslib.Field.t_with_perm -> bool) ->
    delta_neutral_clearing_account:(([< `Read | `Set_and_create ],
                                     Raw_order.t, string option)
                                    Fieldslib.Field.t_with_perm -> bool) ->
    delta_neutral_clearing_intent:(([< `Read | `Set_and_create ],
                                    Raw_order.t, string option)
                                   Fieldslib.Field.t_with_perm -> bool) ->
    basis_points:(([< `Read | `Set_and_create ], Raw_order.t, float option)
                  Fieldslib.Field.t_with_perm -> bool) ->
    basis_points_type:(([< `Read | `Set_and_create ], Raw_order.t,
                        int option)
                       Fieldslib.Field.t_with_perm -> bool) ->
    scale_initial_level_size:(([< `Read | `Set_and_create ], Raw_order.t,
                               Volume.t option)
                              Fieldslib.Field.t_with_perm -> bool) ->
    scale_subsequent_level_size:(([< `Read | `Set_and_create ], Raw_order.t,
                                  Volume.t option)
                                 Fieldslib.Field.t_with_perm -> bool) ->
    scale_price_increment:(([< `Read | `Set_and_create ], Raw_order.t,
                            float option)
                           Fieldslib.Field.t_with_perm -> bool) ->
    scale_price_adjust_value:(([< `Read | `Set_and_create ], Raw_order.t,
                               float option)
                              Fieldslib.Field.t_with_perm -> bool) ->
    scale_price_adjust_interval:(([< `Read | `Set_and_create ], Raw_order.t,
                                  int option)
                                 Fieldslib.Field.t_with_perm -> bool) ->
    scale_profit_offset:(([< `Read | `Set_and_create ], Raw_order.t,
                          float option)
                         Fieldslib.Field.t_with_perm -> bool) ->
    scale_auto_reset:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                      Fieldslib.Field.t_with_perm -> bool) ->
    scale_init_position:(([< `Read | `Set_and_create ], Raw_order.t,
                          int option)
                         Fieldslib.Field.t_with_perm -> bool) ->
    scale_init_fill_quantity:(([< `Read | `Set_and_create ], Raw_order.t,
                               int option)
                              Fieldslib.Field.t_with_perm -> bool) ->
    scale_random_percent:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                          Fieldslib.Field.t_with_perm -> bool) ->
    hedge_type:(([< `Read | `Set_and_create ], Raw_order.t,
                 Raw_order.Hedge_type.t option)
                Fieldslib.Field.t_with_perm -> bool) ->
    hedge_parameter:(([< `Read | `Set_and_create ], Raw_order.t,
                      string option)
                     Fieldslib.Field.t_with_perm -> bool) ->
    account_code:(([< `Read | `Set_and_create ], Raw_order.t,
                   Account_code.t option)
                  Fieldslib.Field.t_with_perm -> bool) ->
    settling_firm:(([< `Read | `Set_and_create ], Raw_order.t, string option)
                   Fieldslib.Field.t_with_perm -> bool) ->
    clearing_account:(([< `Read | `Set_and_create ], Raw_order.t,
                       string option)
                      Fieldslib.Field.t_with_perm -> bool) ->
    clearing_intent:(([< `Read | `Set_and_create ], Raw_order.t,
                      Raw_order.Clearing_intent.t option)
                     Fieldslib.Field.t_with_perm -> bool) ->
    algo_strategy:(([< `Read | `Set_and_create ], Raw_order.t, string option)
                   Fieldslib.Field.t_with_perm -> bool) ->
    request_pre_trade_information:(([< `Read | `Set_and_create ],
                                    Raw_order.t, bool)
                                   Fieldslib.Field.t_with_perm -> bool) ->
    not_held:(([< `Read | `Set_and_create ], Raw_order.t, bool)
              Fieldslib.Field.t_with_perm -> bool) ->
    bool
  val to_list :
    order_id:(([< `Read | `Set_and_create ], Raw_order.t, Order_id.t)
              Fieldslib.Field.t_with_perm -> 'a) ->
    action:(([< `Read | `Set_and_create ], Raw_order.t, string)
            Fieldslib.Field.t_with_perm -> 'a) ->
    quantity:(([< `Read | `Set_and_create ], Raw_order.t, Volume.t)
              Fieldslib.Field.t_with_perm -> 'a) ->
    order_type:(([< `Read | `Set_and_create ], Raw_order.t, string)
                Fieldslib.Field.t_with_perm -> 'a) ->
    limit_price:(([< `Read | `Set_and_create ], Raw_order.t, Price.t option)
                 Fieldslib.Field.t_with_perm -> 'a) ->
    stop_price:(([< `Read | `Set_and_create ], Raw_order.t, Price.t option)
                Fieldslib.Field.t_with_perm -> 'a) ->
    time_in_force:(([< `Read | `Set_and_create ], Raw_order.t,
                    Raw_order.Time_in_force.t option)
                   Fieldslib.Field.t_with_perm -> 'a) ->
    oca_group_name:(([< `Read | `Set_and_create ], Raw_order.t,
                     string option)
                    Fieldslib.Field.t_with_perm -> 'a) ->
    oca_type:(([< `Read | `Set_and_create ], Raw_order.t,
               Raw_order.Oca_type.t option)
              Fieldslib.Field.t_with_perm -> 'a) ->
    order_ref:(([< `Read | `Set_and_create ], Raw_order.t, string option)
               Fieldslib.Field.t_with_perm -> 'a) ->
    transmit:(([< `Read | `Set_and_create ], Raw_order.t, bool)
              Fieldslib.Field.t_with_perm -> 'a) ->
    parent_id:(([< `Read | `Set_and_create ], Raw_order.t, Order_id.t option)
               Fieldslib.Field.t_with_perm -> 'a) ->
    block_order:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                 Fieldslib.Field.t_with_perm -> 'a) ->
    sweep_to_fill:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                   Fieldslib.Field.t_with_perm -> 'a) ->
    display_size:(([< `Read | `Set_and_create ], Raw_order.t,
                   Volume.t option)
                  Fieldslib.Field.t_with_perm -> 'a) ->
    stop_trigger_method:(([< `Read | `Set_and_create ], Raw_order.t,
                          Raw_order.Stop_trigger_method.t)
                         Fieldslib.Field.t_with_perm -> 'a) ->
    outside_regular_trading_hours:(([< `Read | `Set_and_create ],
                                    Raw_order.t, bool)
                                   Fieldslib.Field.t_with_perm -> 'a) ->
    hidden:(([< `Read | `Set_and_create ], Raw_order.t, bool)
            Fieldslib.Field.t_with_perm -> 'a) ->
    good_after_date_time:(([< `Read | `Set_and_create ], Raw_order.t,
                           Core.Std.Time.t option)
                          Fieldslib.Field.t_with_perm -> 'a) ->
    good_till_date_time:(([< `Read | `Set_and_create ], Raw_order.t,
                          Core.Std.Time.t option)
                         Fieldslib.Field.t_with_perm -> 'a) ->
    override_percentage_constraints:(([< `Read | `Set_and_create ],
                                      Raw_order.t, bool)
                                     Fieldslib.Field.t_with_perm -> 'a) ->
    rule80A:(([< `Read | `Set_and_create ], Raw_order.t,
              Raw_order.Rule80A.t option)
             Fieldslib.Field.t_with_perm -> 'a) ->
    all_or_none:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                 Fieldslib.Field.t_with_perm -> 'a) ->
    minimum_quantity:(([< `Read | `Set_and_create ], Raw_order.t,
                       Volume.t option)
                      Fieldslib.Field.t_with_perm -> 'a) ->
    percent_offset:(([< `Read | `Set_and_create ], Raw_order.t, float option)
                    Fieldslib.Field.t_with_perm -> 'a) ->
    trailing_stop_price:(([< `Read | `Set_and_create ], Raw_order.t,
                          Price.t option)
                         Fieldslib.Field.t_with_perm -> 'a) ->
    trailing_percent:(([< `Read | `Set_and_create ], Raw_order.t,
                       float option)
                      Fieldslib.Field.t_with_perm -> 'a) ->
    financial_advisor_group:(([< `Read | `Set_and_create ], Raw_order.t,
                              string option)
                             Fieldslib.Field.t_with_perm -> 'a) ->
    financial_advisor_profile:(([< `Read | `Set_and_create ], Raw_order.t,
                                string option)
                               Fieldslib.Field.t_with_perm -> 'a) ->
    financial_advisor_method:(([< `Read | `Set_and_create ], Raw_order.t,
                               string option)
                              Fieldslib.Field.t_with_perm -> 'a) ->
    financial_advisor_percentage:(([< `Read | `Set_and_create ], Raw_order.t,
                                   string option)
                                  Fieldslib.Field.t_with_perm -> 'a) ->
    open_close:(([< `Read | `Set_and_create ], Raw_order.t,
                 Raw_order.Open_close.t)
                Fieldslib.Field.t_with_perm -> 'a) ->
    origin:(([< `Read | `Set_and_create ], Raw_order.t, Raw_order.Origin.t)
            Fieldslib.Field.t_with_perm -> 'a) ->
    short_sale_slot:(([< `Read | `Set_and_create ], Raw_order.t, int option)
                     Fieldslib.Field.t_with_perm -> 'a) ->
    designated_location:(([< `Read | `Set_and_create ], Raw_order.t,
                          string option)
                         Fieldslib.Field.t_with_perm -> 'a) ->
    exemption_code:(([< `Read | `Set_and_create ], Raw_order.t, int)
                    Fieldslib.Field.t_with_perm -> 'a) ->
    discretionary_amount:(([< `Read | `Set_and_create ], Raw_order.t,
                           float option)
                          Fieldslib.Field.t_with_perm -> 'a) ->
    electronic_trade_only:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                           Fieldslib.Field.t_with_perm -> 'a) ->
    firm_quote_only:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                     Fieldslib.Field.t_with_perm -> 'a) ->
    nbbo_price_cap:(([< `Read | `Set_and_create ], Raw_order.t, float option)
                    Fieldslib.Field.t_with_perm -> 'a) ->
    opt_out_smart_routing:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                           Fieldslib.Field.t_with_perm -> 'a) ->
    auction_strategy:(([< `Read | `Set_and_create ], Raw_order.t,
                       Raw_order.Auction_strategy.t option)
                      Fieldslib.Field.t_with_perm -> 'a) ->
    starting_price:(([< `Read | `Set_and_create ], Raw_order.t,
                     Price.t option)
                    Fieldslib.Field.t_with_perm -> 'a) ->
    stock_reference_price:(([< `Read | `Set_and_create ], Raw_order.t,
                            Price.t option)
                           Fieldslib.Field.t_with_perm -> 'a) ->
    delta:(([< `Read | `Set_and_create ], Raw_order.t, float option)
           Fieldslib.Field.t_with_perm -> 'a) ->
    lower_stock_price_range:(([< `Read | `Set_and_create ], Raw_order.t,
                              Price.t option)
                             Fieldslib.Field.t_with_perm -> 'a) ->
    upper_stock_price_range:(([< `Read | `Set_and_create ], Raw_order.t,
                              Price.t option)
                             Fieldslib.Field.t_with_perm -> 'a) ->
    volatility:(([< `Read | `Set_and_create ], Raw_order.t, float option)
                Fieldslib.Field.t_with_perm -> 'a) ->
    volatility_type:(([< `Read | `Set_and_create ], Raw_order.t,
                      Raw_order.Volatility_type.t option)
                     Fieldslib.Field.t_with_perm -> 'a) ->
    continuous_update:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                       Fieldslib.Field.t_with_perm -> 'a) ->
    reference_price_type:(([< `Read | `Set_and_create ], Raw_order.t,
                           Raw_order.Reference_price_type.t option)
                          Fieldslib.Field.t_with_perm -> 'a) ->
    delta_neutral_order_type:(([< `Read | `Set_and_create ], Raw_order.t,
                               Order_type.t option)
                              Fieldslib.Field.t_with_perm -> 'a) ->
    delta_neutral_aux_price:(([< `Read | `Set_and_create ], Raw_order.t,
                              Price.t option)
                             Fieldslib.Field.t_with_perm -> 'a) ->
    delta_neutral_contract_id:(([< `Read | `Set_and_create ], Raw_order.t,
                                Contract_id.t option)
                               Fieldslib.Field.t_with_perm -> 'a) ->
    delta_neutral_settling_firm:(([< `Read | `Set_and_create ], Raw_order.t,
                                  string option)
                                 Fieldslib.Field.t_with_perm -> 'a) ->
    delta_neutral_clearing_account:(([< `Read | `Set_and_create ],
                                     Raw_order.t, string option)
                                    Fieldslib.Field.t_with_perm -> 'a) ->
    delta_neutral_clearing_intent:(([< `Read | `Set_and_create ],
                                    Raw_order.t, string option)
                                   Fieldslib.Field.t_with_perm -> 'a) ->
    basis_points:(([< `Read | `Set_and_create ], Raw_order.t, float option)
                  Fieldslib.Field.t_with_perm -> 'a) ->
    basis_points_type:(([< `Read | `Set_and_create ], Raw_order.t,
                        int option)
                       Fieldslib.Field.t_with_perm -> 'a) ->
    scale_initial_level_size:(([< `Read | `Set_and_create ], Raw_order.t,
                               Volume.t option)
                              Fieldslib.Field.t_with_perm -> 'a) ->
    scale_subsequent_level_size:(([< `Read | `Set_and_create ], Raw_order.t,
                                  Volume.t option)
                                 Fieldslib.Field.t_with_perm -> 'a) ->
    scale_price_increment:(([< `Read | `Set_and_create ], Raw_order.t,
                            float option)
                           Fieldslib.Field.t_with_perm -> 'a) ->
    scale_price_adjust_value:(([< `Read | `Set_and_create ], Raw_order.t,
                               float option)
                              Fieldslib.Field.t_with_perm -> 'a) ->
    scale_price_adjust_interval:(([< `Read | `Set_and_create ], Raw_order.t,
                                  int option)
                                 Fieldslib.Field.t_with_perm -> 'a) ->
    scale_profit_offset:(([< `Read | `Set_and_create ], Raw_order.t,
                          float option)
                         Fieldslib.Field.t_with_perm -> 'a) ->
    scale_auto_reset:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                      Fieldslib.Field.t_with_perm -> 'a) ->
    scale_init_position:(([< `Read | `Set_and_create ], Raw_order.t,
                          int option)
                         Fieldslib.Field.t_with_perm -> 'a) ->
    scale_init_fill_quantity:(([< `Read | `Set_and_create ], Raw_order.t,
                               int option)
                              Fieldslib.Field.t_with_perm -> 'a) ->
    scale_random_percent:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                          Fieldslib.Field.t_with_perm -> 'a) ->
    hedge_type:(([< `Read | `Set_and_create ], Raw_order.t,
                 Raw_order.Hedge_type.t option)
                Fieldslib.Field.t_with_perm -> 'a) ->
    hedge_parameter:(([< `Read | `Set_and_create ], Raw_order.t,
                      string option)
                     Fieldslib.Field.t_with_perm -> 'a) ->
    account_code:(([< `Read | `Set_and_create ], Raw_order.t,
                   Account_code.t option)
                  Fieldslib.Field.t_with_perm -> 'a) ->
    settling_firm:(([< `Read | `Set_and_create ], Raw_order.t, string option)
                   Fieldslib.Field.t_with_perm -> 'a) ->
    clearing_account:(([< `Read | `Set_and_create ], Raw_order.t,
                       string option)
                      Fieldslib.Field.t_with_perm -> 'a) ->
    clearing_intent:(([< `Read | `Set_and_create ], Raw_order.t,
                      Raw_order.Clearing_intent.t option)
                     Fieldslib.Field.t_with_perm -> 'a) ->
    algo_strategy:(([< `Read | `Set_and_create ], Raw_order.t, string option)
                   Fieldslib.Field.t_with_perm -> 'a) ->
    request_pre_trade_information:(([< `Read | `Set_and_create ],
                                    Raw_order.t, bool)
                                   Fieldslib.Field.t_with_perm -> 'a) ->
    not_held:(([< `Read | `Set_and_create ], Raw_order.t, bool)
              Fieldslib.Field.t_with_perm -> 'a) ->
    'a list
  module Direct :
    sig
      val iter :
        Raw_order.t ->
        order_id:(([< `Read | `Set_and_create ], Raw_order.t, Order_id.t)
                  Fieldslib.Field.t_with_perm ->
                  Raw_order.t -> Order_id.t -> 'a) ->
        action:(([< `Read | `Set_and_create ], Raw_order.t, string)
                Fieldslib.Field.t_with_perm -> Raw_order.t -> string -> 'b) ->
        quantity:(([< `Read | `Set_and_create ], Raw_order.t, Volume.t)
                  Fieldslib.Field.t_with_perm ->
                  Raw_order.t -> Volume.t -> 'c) ->
        order_type:(([< `Read | `Set_and_create ], Raw_order.t, string)
                    Fieldslib.Field.t_with_perm ->
                    Raw_order.t -> string -> 'd) ->
        limit_price:(([< `Read | `Set_and_create ], Raw_order.t,
                      Price.t option)
                     Fieldslib.Field.t_with_perm ->
                     Raw_order.t -> Price.t option -> 'e) ->
        stop_price:(([< `Read | `Set_and_create ], Raw_order.t,
                     Price.t option)
                    Fieldslib.Field.t_with_perm ->
                    Raw_order.t -> Price.t option -> 'f) ->
        time_in_force:(([< `Read | `Set_and_create ], Raw_order.t,
                        Raw_order.Time_in_force.t option)
                       Fieldslib.Field.t_with_perm ->
                       Raw_order.t -> Raw_order.Time_in_force.t option -> 'g) ->
        oca_group_name:(([< `Read | `Set_and_create ], Raw_order.t,
                         string option)
                        Fieldslib.Field.t_with_perm ->
                        Raw_order.t -> string option -> 'h) ->
        oca_type:(([< `Read | `Set_and_create ], Raw_order.t,
                   Raw_order.Oca_type.t option)
                  Fieldslib.Field.t_with_perm ->
                  Raw_order.t -> Raw_order.Oca_type.t option -> 'i) ->
        order_ref:(([< `Read | `Set_and_create ], Raw_order.t, string option)
                   Fieldslib.Field.t_with_perm ->
                   Raw_order.t -> string option -> 'j) ->
        transmit:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                  Fieldslib.Field.t_with_perm -> Raw_order.t -> bool -> 'k) ->
        parent_id:(([< `Read | `Set_and_create ], Raw_order.t,
                    Order_id.t option)
                   Fieldslib.Field.t_with_perm ->
                   Raw_order.t -> Order_id.t option -> 'l) ->
        block_order:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                     Fieldslib.Field.t_with_perm -> Raw_order.t -> bool -> 'm) ->
        sweep_to_fill:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                       Fieldslib.Field.t_with_perm ->
                       Raw_order.t -> bool -> 'n) ->
        display_size:(([< `Read | `Set_and_create ], Raw_order.t,
                       Volume.t option)
                      Fieldslib.Field.t_with_perm ->
                      Raw_order.t -> Volume.t option -> 'o) ->
        stop_trigger_method:(([< `Read | `Set_and_create ], Raw_order.t,
                              Raw_order.Stop_trigger_method.t)
                             Fieldslib.Field.t_with_perm ->
                             Raw_order.t ->
                             Raw_order.Stop_trigger_method.t -> 'p) ->
        outside_regular_trading_hours:(([< `Read | `Set_and_create ],
                                        Raw_order.t, bool)
                                       Fieldslib.Field.t_with_perm ->
                                       Raw_order.t -> bool -> 'q) ->
        hidden:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                Fieldslib.Field.t_with_perm -> Raw_order.t -> bool -> 'r) ->
        good_after_date_time:(([< `Read | `Set_and_create ], Raw_order.t,
                               Core.Std.Time.t option)
                              Fieldslib.Field.t_with_perm ->
                              Raw_order.t -> Core.Std.Time.t option -> 's) ->
        good_till_date_time:(([< `Read | `Set_and_create ], Raw_order.t,
                              Core.Std.Time.t option)
                             Fieldslib.Field.t_with_perm ->
                             Raw_order.t -> Core.Std.Time.t option -> 't) ->
        override_percentage_constraints:(([< `Read | `Set_and_create ],
                                          Raw_order.t, bool)
                                         Fieldslib.Field.t_with_perm ->
                                         Raw_order.t -> bool -> 'u) ->
        rule80A:(([< `Read | `Set_and_create ], Raw_order.t,
                  Raw_order.Rule80A.t option)
                 Fieldslib.Field.t_with_perm ->
                 Raw_order.t -> Raw_order.Rule80A.t option -> 'v) ->
        all_or_none:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                     Fieldslib.Field.t_with_perm -> Raw_order.t -> bool -> 'w) ->
        minimum_quantity:(([< `Read | `Set_and_create ], Raw_order.t,
                           Volume.t option)
                          Fieldslib.Field.t_with_perm ->
                          Raw_order.t -> Volume.t option -> 'x) ->
        percent_offset:(([< `Read | `Set_and_create ], Raw_order.t,
                         float option)
                        Fieldslib.Field.t_with_perm ->
                        Raw_order.t -> float option -> 'y) ->
        trailing_stop_price:(([< `Read | `Set_and_create ], Raw_order.t,
                              Price.t option)
                             Fieldslib.Field.t_with_perm ->
                             Raw_order.t -> Price.t option -> 'z) ->
        trailing_percent:(([< `Read | `Set_and_create ], Raw_order.t,
                           float option)
                          Fieldslib.Field.t_with_perm ->
                          Raw_order.t -> float option -> 'a1) ->
        financial_advisor_group:(([< `Read | `Set_and_create ], Raw_order.t,
                                  string option)
                                 Fieldslib.Field.t_with_perm ->
                                 Raw_order.t -> string option -> 'b1) ->
        financial_advisor_profile:(([< `Read | `Set_and_create ],
                                    Raw_order.t, string option)
                                   Fieldslib.Field.t_with_perm ->
                                   Raw_order.t -> string option -> 'c1) ->
        financial_advisor_method:(([< `Read | `Set_and_create ], Raw_order.t,
                                   string option)
                                  Fieldslib.Field.t_with_perm ->
                                  Raw_order.t -> string option -> 'd1) ->
        financial_advisor_percentage:(([< `Read | `Set_and_create ],
                                       Raw_order.t, string option)
                                      Fieldslib.Field.t_with_perm ->
                                      Raw_order.t -> string option -> 'e1) ->
        open_close:(([< `Read | `Set_and_create ], Raw_order.t,
                     Raw_order.Open_close.t)
                    Fieldslib.Field.t_with_perm ->
                    Raw_order.t -> Raw_order.Open_close.t -> 'f1) ->
        origin:(([< `Read | `Set_and_create ], Raw_order.t,
                 Raw_order.Origin.t)
                Fieldslib.Field.t_with_perm ->
                Raw_order.t -> Raw_order.Origin.t -> 'g1) ->
        short_sale_slot:(([< `Read | `Set_and_create ], Raw_order.t,
                          int option)
                         Fieldslib.Field.t_with_perm ->
                         Raw_order.t -> int option -> 'h1) ->
        designated_location:(([< `Read | `Set_and_create ], Raw_order.t,
                              string option)
                             Fieldslib.Field.t_with_perm ->
                             Raw_order.t -> string option -> 'i1) ->
        exemption_code:(([< `Read | `Set_and_create ], Raw_order.t, int)
                        Fieldslib.Field.t_with_perm ->
                        Raw_order.t -> int -> 'j1) ->
        discretionary_amount:(([< `Read | `Set_and_create ], Raw_order.t,
                               float option)
                              Fieldslib.Field.t_with_perm ->
                              Raw_order.t -> float option -> 'k1) ->
        electronic_trade_only:(([< `Read | `Set_and_create ], Raw_order.t,
                                bool)
                               Fieldslib.Field.t_with_perm ->
                               Raw_order.t -> bool -> 'l1) ->
        firm_quote_only:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                         Fieldslib.Field.t_with_perm ->
                         Raw_order.t -> bool -> 'm1) ->
        nbbo_price_cap:(([< `Read | `Set_and_create ], Raw_order.t,
                         float option)
                        Fieldslib.Field.t_with_perm ->
                        Raw_order.t -> float option -> 'n1) ->
        opt_out_smart_routing:(([< `Read | `Set_and_create ], Raw_order.t,
                                bool)
                               Fieldslib.Field.t_with_perm ->
                               Raw_order.t -> bool -> 'o1) ->
        auction_strategy:(([< `Read | `Set_and_create ], Raw_order.t,
                           Raw_order.Auction_strategy.t option)
                          Fieldslib.Field.t_with_perm ->
                          Raw_order.t ->
                          Raw_order.Auction_strategy.t option -> 'p1) ->
        starting_price:(([< `Read | `Set_and_create ], Raw_order.t,
                         Price.t option)
                        Fieldslib.Field.t_with_perm ->
                        Raw_order.t -> Price.t option -> 'q1) ->
        stock_reference_price:(([< `Read | `Set_and_create ], Raw_order.t,
                                Price.t option)
                               Fieldslib.Field.t_with_perm ->
                               Raw_order.t -> Price.t option -> 'r1) ->
        delta:(([< `Read | `Set_and_create ], Raw_order.t, float option)
               Fieldslib.Field.t_with_perm ->
               Raw_order.t -> float option -> 's1) ->
        lower_stock_price_range:(([< `Read | `Set_and_create ], Raw_order.t,
                                  Price.t option)
                                 Fieldslib.Field.t_with_perm ->
                                 Raw_order.t -> Price.t option -> 't1) ->
        upper_stock_price_range:(([< `Read | `Set_and_create ], Raw_order.t,
                                  Price.t option)
                                 Fieldslib.Field.t_with_perm ->
                                 Raw_order.t -> Price.t option -> 'u1) ->
        volatility:(([< `Read | `Set_and_create ], Raw_order.t, float option)
                    Fieldslib.Field.t_with_perm ->
                    Raw_order.t -> float option -> 'v1) ->
        volatility_type:(([< `Read | `Set_and_create ], Raw_order.t,
                          Raw_order.Volatility_type.t option)
                         Fieldslib.Field.t_with_perm ->
                         Raw_order.t ->
                         Raw_order.Volatility_type.t option -> 'w1) ->
        continuous_update:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                           Fieldslib.Field.t_with_perm ->
                           Raw_order.t -> bool -> 'x1) ->
        reference_price_type:(([< `Read | `Set_and_create ], Raw_order.t,
                               Raw_order.Reference_price_type.t option)
                              Fieldslib.Field.t_with_perm ->
                              Raw_order.t ->
                              Raw_order.Reference_price_type.t option -> 'y1) ->
        delta_neutral_order_type:(([< `Read | `Set_and_create ], Raw_order.t,
                                   Order_type.t option)
                                  Fieldslib.Field.t_with_perm ->
                                  Raw_order.t -> Order_type.t option -> 'z1) ->
        delta_neutral_aux_price:(([< `Read | `Set_and_create ], Raw_order.t,
                                  Price.t option)
                                 Fieldslib.Field.t_with_perm ->
                                 Raw_order.t -> Price.t option -> 'a2) ->
        delta_neutral_contract_id:(([< `Read | `Set_and_create ],
                                    Raw_order.t, Contract_id.t option)
                                   Fieldslib.Field.t_with_perm ->
                                   Raw_order.t -> Contract_id.t option -> 'b2) ->
        delta_neutral_settling_firm:(([< `Read | `Set_and_create ],
                                      Raw_order.t, string option)
                                     Fieldslib.Field.t_with_perm ->
                                     Raw_order.t -> string option -> 'c2) ->
        delta_neutral_clearing_account:(([< `Read | `Set_and_create ],
                                         Raw_order.t, string option)
                                        Fieldslib.Field.t_with_perm ->
                                        Raw_order.t -> string option -> 'd2) ->
        delta_neutral_clearing_intent:(([< `Read | `Set_and_create ],
                                        Raw_order.t, string option)
                                       Fieldslib.Field.t_with_perm ->
                                       Raw_order.t -> string option -> 'e2) ->
        basis_points:(([< `Read | `Set_and_create ], Raw_order.t,
                       float option)
                      Fieldslib.Field.t_with_perm ->
                      Raw_order.t -> float option -> 'f2) ->
        basis_points_type:(([< `Read | `Set_and_create ], Raw_order.t,
                            int option)
                           Fieldslib.Field.t_with_perm ->
                           Raw_order.t -> int option -> 'g2) ->
        scale_initial_level_size:(([< `Read | `Set_and_create ], Raw_order.t,
                                   Volume.t option)
                                  Fieldslib.Field.t_with_perm ->
                                  Raw_order.t -> Volume.t option -> 'h2) ->
        scale_subsequent_level_size:(([< `Read | `Set_and_create ],
                                      Raw_order.t, Volume.t option)
                                     Fieldslib.Field.t_with_perm ->
                                     Raw_order.t -> Volume.t option -> 'i2) ->
        scale_price_increment:(([< `Read | `Set_and_create ], Raw_order.t,
                                float option)
                               Fieldslib.Field.t_with_perm ->
                               Raw_order.t -> float option -> 'j2) ->
        scale_price_adjust_value:(([< `Read | `Set_and_create ], Raw_order.t,
                                   float option)
                                  Fieldslib.Field.t_with_perm ->
                                  Raw_order.t -> float option -> 'k2) ->
        scale_price_adjust_interval:(([< `Read | `Set_and_create ],
                                      Raw_order.t, int option)
                                     Fieldslib.Field.t_with_perm ->
                                     Raw_order.t -> int option -> 'l2) ->
        scale_profit_offset:(([< `Read | `Set_and_create ], Raw_order.t,
                              float option)
                             Fieldslib.Field.t_with_perm ->
                             Raw_order.t -> float option -> 'm2) ->
        scale_auto_reset:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                          Fieldslib.Field.t_with_perm ->
                          Raw_order.t -> bool -> 'n2) ->
        scale_init_position:(([< `Read | `Set_and_create ], Raw_order.t,
                              int option)
                             Fieldslib.Field.t_with_perm ->
                             Raw_order.t -> int option -> 'o2) ->
        scale_init_fill_quantity:(([< `Read | `Set_and_create ], Raw_order.t,
                                   int option)
                                  Fieldslib.Field.t_with_perm ->
                                  Raw_order.t -> int option -> 'p2) ->
        scale_random_percent:(([< `Read | `Set_and_create ], Raw_order.t,
                               bool)
                              Fieldslib.Field.t_with_perm ->
                              Raw_order.t -> bool -> 'q2) ->
        hedge_type:(([< `Read | `Set_and_create ], Raw_order.t,
                     Raw_order.Hedge_type.t option)
                    Fieldslib.Field.t_with_perm ->
                    Raw_order.t -> Raw_order.Hedge_type.t option -> 'r2) ->
        hedge_parameter:(([< `Read | `Set_and_create ], Raw_order.t,
                          string option)
                         Fieldslib.Field.t_with_perm ->
                         Raw_order.t -> string option -> 's2) ->
        account_code:(([< `Read | `Set_and_create ], Raw_order.t,
                       Account_code.t option)
                      Fieldslib.Field.t_with_perm ->
                      Raw_order.t -> Account_code.t option -> 't2) ->
        settling_firm:(([< `Read | `Set_and_create ], Raw_order.t,
                        string option)
                       Fieldslib.Field.t_with_perm ->
                       Raw_order.t -> string option -> 'u2) ->
        clearing_account:(([< `Read | `Set_and_create ], Raw_order.t,
                           string option)
                          Fieldslib.Field.t_with_perm ->
                          Raw_order.t -> string option -> 'v2) ->
        clearing_intent:(([< `Read | `Set_and_create ], Raw_order.t,
                          Raw_order.Clearing_intent.t option)
                         Fieldslib.Field.t_with_perm ->
                         Raw_order.t ->
                         Raw_order.Clearing_intent.t option -> 'w2) ->
        algo_strategy:(([< `Read | `Set_and_create ], Raw_order.t,
                        string option)
                       Fieldslib.Field.t_with_perm ->
                       Raw_order.t -> string option -> 'x2) ->
        request_pre_trade_information:(([< `Read | `Set_and_create ],
                                        Raw_order.t, bool)
                                       Fieldslib.Field.t_with_perm ->
                                       Raw_order.t -> bool -> 'y2) ->
        not_held:(([< `Read | `Set_and_create ], Raw_order.t, bool)
                  Fieldslib.Field.t_with_perm -> Raw_order.t -> bool -> 'z2) ->
        'z2
      val fold :
        Raw_order.t ->
        init:'->
        order_id:('->
                  ([< `Read | `Set_and_create ], Raw_order.t, Order_id.t)
                  Fieldslib.Field.t_with_perm ->
                  Raw_order.t -> Order_id.t -> 'b) ->
        action:('->
                ([< `Read | `Set_and_create ], Raw_order.t, string)
                Fieldslib.Field.t_with_perm -> Raw_order.t -> string -> 'c) ->
        quantity:('->
                  ([< `Read | `Set_and_create ], Raw_order.t, Volume.t)
                  Fieldslib.Field.t_with_perm ->
                  Raw_order.t -> Volume.t -> 'd) ->
        order_type:('->
                    ([< `Read | `Set_and_create ], Raw_order.t, string)
                    Fieldslib.Field.t_with_perm ->
                    Raw_order.t -> string -> 'e) ->
        limit_price:('->
                     ([< `Read | `Set_and_create ], Raw_order.t,
                      Price.t option)
                     Fieldslib.Field.t_with_perm ->
                     Raw_order.t -> Price.t option -> 'f) ->
        stop_price:('->
                    ([< `Read | `Set_and_create ], Raw_order.t,
                     Price.t option)
                    Fieldslib.Field.t_with_perm ->
                    Raw_order.t -> Price.t option -> 'g) ->
        time_in_force:('->
                       ([< `Read | `Set_and_create ], Raw_order.t,
                        Raw_order.Time_in_force.t option)
                       Fieldslib.Field.t_with_perm ->
                       Raw_order.t -> Raw_order.Time_in_force.t option -> 'h) ->
        oca_group_name:('->
                        ([< `Read | `Set_and_create ], Raw_order.t,
                         string option)
                        Fieldslib.Field.t_with_perm ->
                        Raw_order.t -> string option -> 'i) ->
        oca_type:('->
                  ([< `Read | `Set_and_create ], Raw_order.t,
                   Raw_order.Oca_type.t option)
                  Fieldslib.Field.t_with_perm ->
                  Raw_order.t -> Raw_order.Oca_type.t option -> 'j) ->
        order_ref:('->
                   ([< `Read | `Set_and_create ], Raw_order.t, string option)
                   Fieldslib.Field.t_with_perm ->
                   Raw_order.t -> string option -> 'k) ->
        transmit:('->
                  ([< `Read | `Set_and_create ], Raw_order.t, bool)
                  Fieldslib.Field.t_with_perm -> Raw_order.t -> bool -> 'l) ->
        parent_id:('->
                   ([< `Read | `Set_and_create ], Raw_order.t,
                    Order_id.t option)
                   Fieldslib.Field.t_with_perm ->
                   Raw_order.t -> Order_id.t option -> 'm) ->
        block_order:('->
                     ([< `Read | `Set_and_create ], Raw_order.t, bool)
                     Fieldslib.Field.t_with_perm -> Raw_order.t -> bool -> 'n) ->
        sweep_to_fill:('->
                       ([< `Read | `Set_and_create ], Raw_order.t, bool)
                       Fieldslib.Field.t_with_perm ->
                       Raw_order.t -> bool -> 'o) ->
        display_size:('->
                      ([< `Read | `Set_and_create ], Raw_order.t,
                       Volume.t option)
                      Fieldslib.Field.t_with_perm ->
                      Raw_order.t -> Volume.t option -> 'p) ->
        stop_trigger_method:('->
                             ([< `Read | `Set_and_create ], Raw_order.t,
                              Raw_order.Stop_trigger_method.t)
                             Fieldslib.Field.t_with_perm ->
                             Raw_order.t ->
                             Raw_order.Stop_trigger_method.t -> 'q) ->
        outside_regular_trading_hours:('->
                                       ([< `Read | `Set_and_create ],
                                        Raw_order.t, bool)
                                       Fieldslib.Field.t_with_perm ->
                                       Raw_order.t -> bool -> 'r) ->
        hidden:('->
                ([< `Read | `Set_and_create ], Raw_order.t, bool)
                Fieldslib.Field.t_with_perm -> Raw_order.t -> bool -> 's) ->
        good_after_date_time:('->
                              ([< `Read | `Set_and_create ], Raw_order.t,
                               Core.Std.Time.t option)
                              Fieldslib.Field.t_with_perm ->
                              Raw_order.t -> Core.Std.Time.t option -> 't) ->
        good_till_date_time:('->
                             ([< `Read | `Set_and_create ], Raw_order.t,
                              Core.Std.Time.t option)
                             Fieldslib.Field.t_with_perm ->
                             Raw_order.t -> Core.Std.Time.t option -> 'u) ->
        override_percentage_constraints:('->
                                         ([< `Read | `Set_and_create ],
                                          Raw_order.t, bool)
                                         Fieldslib.Field.t_with_perm ->
                                         Raw_order.t -> bool -> 'v) ->
        rule80A:('->
                 ([< `Read | `Set_and_create ], Raw_order.t,
                  Raw_order.Rule80A.t option)
                 Fieldslib.Field.t_with_perm ->
                 Raw_order.t -> Raw_order.Rule80A.t option -> 'w) ->
        all_or_none:('->
                     ([< `Read | `Set_and_create ], Raw_order.t, bool)
                     Fieldslib.Field.t_with_perm -> Raw_order.t -> bool -> 'x) ->
        minimum_quantity:('->
                          ([< `Read | `Set_and_create ], Raw_order.t,
                           Volume.t option)
                          Fieldslib.Field.t_with_perm ->
                          Raw_order.t -> Volume.t option -> 'y) ->
        percent_offset:('->
                        ([< `Read | `Set_and_create ], Raw_order.t,
                         float option)
                        Fieldslib.Field.t_with_perm ->
                        Raw_order.t -> float option -> 'z) ->
        trailing_stop_price:('->
                             ([< `Read | `Set_and_create ], Raw_order.t,
                              Price.t option)
                             Fieldslib.Field.t_with_perm ->
                             Raw_order.t -> Price.t option -> 'a1) ->
        trailing_percent:('a1 ->
                          ([< `Read | `Set_and_create ], Raw_order.t,
                           float option)
                          Fieldslib.Field.t_with_perm ->
                          Raw_order.t -> float option -> 'b1) ->
        financial_advisor_group:('b1 ->
                                 ([< `Read | `Set_and_create ], Raw_order.t,
                                  string option)
                                 Fieldslib.Field.t_with_perm ->
                                 Raw_order.t -> string option -> 'c1) ->
        financial_advisor_profile:('c1 ->
                                   ([< `Read | `Set_and_create ],
                                    Raw_order.t, string option)
                                   Fieldslib.Field.t_with_perm ->
                                   Raw_order.t -> string option -> 'd1) ->
        financial_advisor_method:('d1 ->
                                  ([< `Read | `Set_and_create ], Raw_order.t,
                                   string option)
                                  Fieldslib.Field.t_with_perm ->
                                  Raw_order.t -> string option -> 'e1) ->
        financial_advisor_percentage:('e1 ->
                                      ([< `Read | `Set_and_create ],
                                       Raw_order.t, string option)
                                      Fieldslib.Field.t_with_perm ->
                                      Raw_order.t -> string option -> 'f1) ->
        open_close:('f1 ->
                    ([< `Read | `Set_and_create ], Raw_order.t,
                     Raw_order.Open_close.t)
                    Fieldslib.Field.t_with_perm ->
                    Raw_order.t -> Raw_order.Open_close.t -> 'g1) ->
        origin:('g1 ->
                ([< `Read | `Set_and_create ], Raw_order.t,
                 Raw_order.Origin.t)
                Fieldslib.Field.t_with_perm ->
                Raw_order.t -> Raw_order.Origin.t -> 'h1) ->
        short_sale_slot:('h1 ->
                         ([< `Read | `Set_and_create ], Raw_order.t,
                          int option)
                         Fieldslib.Field.t_with_perm ->
                         Raw_order.t -> int option -> 'i1) ->
        designated_location:('i1 ->
                             ([< `Read | `Set_and_create ], Raw_order.t,
                              string option)
                             Fieldslib.Field.t_with_perm ->
                             Raw_order.t -> string option -> 'j1) ->
        exemption_code:('j1 ->
                        ([< `Read | `Set_and_create ], Raw_order.t, int)
                        Fieldslib.Field.t_with_perm ->
                        Raw_order.t -> int -> 'k1) ->
        discretionary_amount:('k1 ->
                              ([< `Read | `Set_and_create ], Raw_order.t,
                               float option)
                              Fieldslib.Field.t_with_perm ->
                              Raw_order.t -> float option -> 'l1) ->
        electronic_trade_only:('l1 ->
                               ([< `Read | `Set_and_create ], Raw_order.t,
                                bool)
                               Fieldslib.Field.t_with_perm ->
                               Raw_order.t -> bool -> 'm1) ->
        firm_quote_only:('m1 ->
                         ([< `Read | `Set_and_create ], Raw_order.t, bool)
                         Fieldslib.Field.t_with_perm ->
                         Raw_order.t -> bool -> 'n1) ->
        nbbo_price_cap:('n1 ->
                        ([< `Read | `Set_and_create ], Raw_order.t,
                         float option)
                        Fieldslib.Field.t_with_perm ->
                        Raw_order.t -> float option -> 'o1) ->
        opt_out_smart_routing:('o1 ->
                               ([< `Read | `Set_and_create ], Raw_order.t,
                                bool)
                               Fieldslib.Field.t_with_perm ->
                               Raw_order.t -> bool -> 'p1) ->
        auction_strategy:('p1 ->
                          ([< `Read | `Set_and_create ], Raw_order.t,
                           Raw_order.Auction_strategy.t option)
                          Fieldslib.Field.t_with_perm ->
                          Raw_order.t ->
                          Raw_order.Auction_strategy.t option -> 'q1) ->
        starting_price:('q1 ->
                        ([< `Read | `Set_and_create ], Raw_order.t,
                         Price.t option)
                        Fieldslib.Field.t_with_perm ->
                        Raw_order.t -> Price.t option -> 'r1) ->
        stock_reference_price:('r1 ->
                               ([< `Read | `Set_and_create ], Raw_order.t,
                                Price.t option)
                               Fieldslib.Field.t_with_perm ->
                               Raw_order.t -> Price.t option -> 's1) ->
        delta:('s1 ->
               ([< `Read | `Set_and_create ], Raw_order.t, float option)
               Fieldslib.Field.t_with_perm ->
               Raw_order.t -> float option -> 't1) ->
        lower_stock_price_range:('t1 ->
                                 ([< `Read | `Set_and_create ], Raw_order.t,
                                  Price.t option)
                                 Fieldslib.Field.t_with_perm ->
                                 Raw_order.t -> Price.t option -> 'u1) ->
        upper_stock_price_range:('u1 ->
                                 ([< `Read | `Set_and_create ], Raw_order.t,
                                  Price.t option)
                                 Fieldslib.Field.t_with_perm ->
                                 Raw_order.t -> Price.t option -> 'v1) ->
        volatility:('v1 ->
                    ([< `Read | `Set_and_create ], Raw_order.t, float option)
                    Fieldslib.Field.t_with_perm ->
                    Raw_order.t -> float option -> 'w1) ->
        volatility_type:('w1 ->
                         ([< `Read | `Set_and_create ], Raw_order.t,
                          Raw_order.Volatility_type.t option)
                         Fieldslib.Field.t_with_perm ->
                         Raw_order.t ->
                         Raw_order.Volatility_type.t option -> 'x1) ->
        continuous_update:('x1 ->
                           ([< `Read | `Set_and_create ], Raw_order.t, bool)
                           Fieldslib.Field.t_with_perm ->
                           Raw_order.t -> bool -> 'y1) ->
        reference_price_type:('y1 ->
                              ([< `Read | `Set_and_create ], Raw_order.t,
                               Raw_order.Reference_price_type.t option)
                              Fieldslib.Field.t_with_perm ->
                              Raw_order.t ->
                              Raw_order.Reference_price_type.t option -> 'z1) ->
        delta_neutral_order_type:('z1 ->
                                  ([< `Read | `Set_and_create ], Raw_order.t,
                                   Order_type.t option)
                                  Fieldslib.Field.t_with_perm ->
                                  Raw_order.t -> Order_type.t option -> 'a2) ->
        delta_neutral_aux_price:('a2 ->
                                 ([< `Read | `Set_and_create ], Raw_order.t,
                                  Price.t option)
                                 Fieldslib.Field.t_with_perm ->
                                 Raw_order.t -> Price.t option -> 'b2) ->
        delta_neutral_contract_id:('b2 ->
                                   ([< `Read | `Set_and_create ],
                                    Raw_order.t, Contract_id.t option)
                                   Fieldslib.Field.t_with_perm ->
                                   Raw_order.t -> Contract_id.t option -> 'c2) ->
        delta_neutral_settling_firm:('c2 ->
                                     ([< `Read | `Set_and_create ],
                                      Raw_order.t, string option)
                                     Fieldslib.Field.t_with_perm ->
                                     Raw_order.t -> string option -> 'd2) ->
        delta_neutral_clearing_account:('d2 ->
                                        ([< `Read | `Set_and_create ],
                                         Raw_order.t, string option)
                                        Fieldslib.Field.t_with_perm ->
                                        Raw_order.t -> string option -> 'e2) ->
        delta_neutral_clearing_intent:('e2 ->
                                       ([< `Read | `Set_and_create ],
                                        Raw_order.t, string option)
                                       Fieldslib.Field.t_with_perm ->
                                       Raw_order.t -> string option -> 'f2) ->
        basis_points:('f2 ->
                      ([< `Read | `Set_and_create ], Raw_order.t,
                       float option)
                      Fieldslib.Field.t_with_perm ->
                      Raw_order.t -> float option -> 'g2) ->
        basis_points_type:('g2 ->
                           ([< `Read | `Set_and_create ], Raw_order.t,
                            int option)
                           Fieldslib.Field.t_with_perm ->
                           Raw_order.t -> int option -> 'h2) ->
        scale_initial_level_size:('h2 ->
                                  ([< `Read | `Set_and_create ], Raw_order.t,
                                   Volume.t option)
                                  Fieldslib.Field.t_with_perm ->
                                  Raw_order.t -> Volume.t option -> 'i2) ->
        scale_subsequent_level_size:('i2 ->
                                     ([< `Read | `Set_and_create ],
                                      Raw_order.t, Volume.t option)
                                     Fieldslib.Field.t_with_perm ->
                                     Raw_order.t -> Volume.t option -> 'j2) ->
        scale_price_increment:('j2 ->
                               ([< `Read | `Set_and_create ], Raw_order.t,
                                float option)
                               Fieldslib.Field.t_with_perm ->
                               Raw_order.t -> float option -> 'k2) ->
        scale_price_adjust_value:('k2 ->
                                  ([< `Read | `Set_and_create ], Raw_order.t,
                                   float option)
                                  Fieldslib.Field.t_with_perm ->
                                  Raw_order.t -> float option -> 'l2) ->
        scale_price_adjust_interval:('l2 ->
                                     ([< `Read | `Set_and_create ],
                                      Raw_order.t, int option)
                                     Fieldslib.Field.t_with_perm ->
                                     Raw_order.t -> int option -> 'm2) ->
        scale_profit_offset:('m2 ->
                             ([< `Read | `Set_and_create ], Raw_order.t,
                              float option)
                             Fieldslib.Field.t_with_perm ->
                             Raw_order.t -> float option -> 'n2) ->
        scale_auto_reset:('n2 ->
                          ([< `Read | `Set_and_create ], Raw_order.t, bool)
                          Fieldslib.Field.t_with_perm ->
                          Raw_order.t -> bool -> 'o2) ->
        scale_init_position:('o2 ->
                             ([< `Read | `Set_and_create ], Raw_order.t,
                              int option)
                             Fieldslib.Field.t_with_perm ->
                             Raw_order.t -> int option -> 'p2) ->
        scale_init_fill_quantity:('p2 ->
                                  ([< `Read | `Set_and_create ], Raw_order.t,
                                   int option)
                                  Fieldslib.Field.t_with_perm ->
                                  Raw_order.t -> int option -> 'q2) ->
        scale_random_percent:('q2 ->
                              ([< `Read | `Set_and_create ], Raw_order.t,
                               bool)
                              Fieldslib.Field.t_with_perm ->
                              Raw_order.t -> bool -> 'r2) ->
        hedge_type:('r2 ->
                    ([< `Read | `Set_and_create ], Raw_order.t,
                     Raw_order.Hedge_type.t option)
                    Fieldslib.Field.t_with_perm ->
                    Raw_order.t -> Raw_order.Hedge_type.t option -> 's2) ->
        hedge_parameter:('s2 ->
                         ([< `Read | `Set_and_create ], Raw_order.t,
                          string option)
                         Fieldslib.Field.t_with_perm ->
                         Raw_order.t -> string option -> 't2) ->
        account_code:('t2 ->
                      ([< `Read | `Set_and_create ], Raw_order.t,
                       Account_code.t option)
                      Fieldslib.Field.t_with_perm ->
                      Raw_order.t -> Account_code.t option -> 'u2) ->
        settling_firm:('u2 ->
                       ([< `Read | `Set_and_create ], Raw_order.t,
                        string option)
                       Fieldslib.Field.t_with_perm ->
                       Raw_order.t -> string option -> 'v2) ->
        clearing_account:('v2 ->
                          ([< `Read | `Set_and_create ], Raw_order.t,
                           string option)
                          Fieldslib.Field.t_with_perm ->
                          Raw_order.t -> string option -> 'w2) ->
        clearing_intent:('w2 ->
                         ([< `Read | `Set_and_create ], Raw_order.t,
                          Raw_order.Clearing_intent.t option)
                         Fieldslib.Field.t_with_perm ->
                         Raw_order.t ->
                         Raw_order.Clearing_intent.t option -> 'x2) ->
        algo_strategy:('x2 ->
                       ([< `Read | `Set_and_create ], Raw_order.t,
                        string option)
                       Fieldslib.Field.t_with_perm ->
                       Raw_order.t -> string option -> 'y2) ->
        request_pre_trade_information:('y2 ->
                                       ([< `Read | `Set_and_create ],
                                        Raw_order.t, bool)
                                       Fieldslib.Field.t_with_perm ->
                                       Raw_order.t -> bool -> 'z2) ->
        not_held:('z2 ->
                  ([< `Read | `Set_and_create ], Raw_order.t, bool)
                  Fieldslib.Field.t_with_perm -> Raw_order.t -> bool -> 'a3) ->
        'a3
    end
end