sig
  type sbdo_kind =
      SBDO_Remove
    | SBDO_Preserve
    | SBDO_AdHoc
    | SBDO_Tidy
    | SBDO_DupTidy
    | SBDO_Sloppy
  type typing_kind = Typing_None | Typing_Weak | Typing_Strong
  type serialization_kind =
      Serialize_As_Standard
    | Serialize_As_Well_Formed
    | Serialize_As_XQuery
    | Serialize_As_Canonical
  type projection_kind =
      Projection_None
    | Projection_Standard
    | Projection_Optimized
  type treejoin_logical_kind = Default | TreeJoin | Twig
  type treejoin_physical_kind =
      NestedLoop
    | SCJoin
    | IndexSortJoin
    | TwigJoin
    | Streaming
  type dxq_execution_kind =
      LocalSimulation of string
    | RemoteExecution of string
  type module_processing_context = {
    mutable boundary_space_kind : Xquery_common_ast.strip_or_preserve;
    mutable construction_kind : Xquery_common_ast.strip_or_preserve;
    mutable ordering_kind : Xquery_common_ast.ordered_or_unordered;
    mutable default_order_kind : Xquery_common_ast.emptysortkind;
    mutable ns_preserve_kind : Xquery_common_ast.preserve_or_no_preserve;
    mutable ns_inherit_kind : Xquery_common_ast.inherit_or_no_inherit;
    mutable base_uri : AnyURI._uri option;
    mutable default_collation : string;
    mutable system : bool;
    mutable name_generators : Namespace_generate.name_gen Pervasives.ref list;
  }
  val default_module_processing_context :
    unit -> Processing_context.module_processing_context
  val set_boundary_space_kind :
    Processing_context.module_processing_context ->
    Xquery_common_ast.strip_or_preserve -> unit
  val set_construction_kind :
    Processing_context.module_processing_context ->
    Xquery_common_ast.strip_or_preserve -> unit
  val set_ordering_kind :
    Processing_context.module_processing_context ->
    Xquery_common_ast.ordered_or_unordered -> unit
  val set_default_order_kind :
    Processing_context.module_processing_context ->
    Xquery_common_ast.emptysortkind -> unit
  val set_ns_preserve_kind :
    Processing_context.module_processing_context ->
    Xquery_common_ast.preserve_or_no_preserve -> unit
  val set_ns_inherit_kind :
    Processing_context.module_processing_context ->
    Xquery_common_ast.inherit_or_no_inherit -> unit
  val get_base_uri :
    Processing_context.module_processing_context -> AnyURI._uri option
  val get_default_collation :
    Processing_context.module_processing_context -> string
  val set_base_uri :
    Processing_context.module_processing_context ->
    AnyURI._uri option -> unit
  val set_default_collation :
    Processing_context.module_processing_context -> string -> unit
  val get_name_generator :
    Processing_context.module_processing_context ->
    Namespace_names.prefix ->
    Namespace_names.uri ->
    string -> Namespace_generate.name_gen Pervasives.ref
  type processing_context = {
    mutable normalization : bool;
    mutable normalization_ident : bool;
    mutable typing : bool;
    mutable rewriting : bool;
    mutable factorization : bool;
    mutable optimization : bool;
    mutable code_selection : bool;
    mutable evaluation : bool;
    mutable xml_whitespace : bool;
    mutable xml_pis_and_comments : bool;
    mutable schema_location_hints : (string, string) Hashtbl.t;
    mutable module_location_hints : (string, string) Hashtbl.t;
    mutable interface_location_hints : (string, string) Hashtbl.t;
    mutable merge_module_locations : bool;
    mutable typing_kind : Processing_context.typing_kind;
    mutable sbdo_kind : Processing_context.sbdo_kind;
    mutable inline_functions : bool;
    mutable inline_variables : bool;
    mutable projection_kind : Processing_context.projection_kind;
    mutable treejoin_phys : Processing_context.treejoin_physical_kind;
    mutable treejoin_log : Processing_context.treejoin_logical_kind;
    mutable streaming : bool;
    mutable infer_independence : bool;
    mutable dxq_server :
      (Galax_server_util.evaluate_closure_sig *
       Galax_server_util.evaluate_remote_query_sig *
       Galax_server_util.async_eval_ext_sig *
       Galax_server_util.interpret_hostport_sig)
      option;
    mutable dxq_optimization : bool;
    mutable dxq_host : string option;
    mutable dxq_port : int option;
    mutable dxq_source : Processing_context.dxq_execution_kind option;
    mutable dxq_topology : string option;
    mutable dxq_drop_msgs : bool;
    mutable zerod_host : string option;
    mutable zerod_port : int option;
    mutable serialization_kind : Processing_context.serialization_kind;
    monitor_context : Monitoring_context.monitor_context;
    mutable external_nsenv : Namespace_context.nsenv;
  }
  val default_processing_context :
    unit -> Processing_context.processing_context
  val get_external_nsenv :
    Processing_context.processing_context -> Namespace_context.nsenv
  val set_normalization_phase :
    Processing_context.processing_context -> bool -> unit
  val set_normalization_ident :
    Processing_context.processing_context -> bool -> unit
  val set_typing_phase :
    Processing_context.processing_context -> bool -> unit
  val set_rewriting_phase :
    Processing_context.processing_context -> bool -> unit
  val set_factorization_phase :
    Processing_context.processing_context -> bool -> unit
  val set_optimization_phase :
    Processing_context.processing_context -> bool -> unit
  val set_code_selection_phase :
    Processing_context.processing_context -> bool -> unit
  val set_evaluation_phase :
    Processing_context.processing_context -> bool -> unit
  val set_xml_whitespace :
    Processing_context.processing_context -> bool -> unit
  val set_xml_pis_and_comments :
    Processing_context.processing_context -> bool -> unit
  val set_inline_functions :
    Processing_context.processing_context -> bool -> unit
  val set_inline_variables :
    Processing_context.processing_context -> bool -> unit
  val set_sbdo_kind :
    Processing_context.processing_context ->
    Processing_context.sbdo_kind -> unit
  val set_typing_kind :
    Processing_context.processing_context ->
    Processing_context.typing_kind -> unit
  val is_weak_typing : Processing_context.processing_context -> bool
  val set_serialization_kind :
    Processing_context.processing_context ->
    Processing_context.serialization_kind -> unit
  val set_projection_kind :
    Processing_context.processing_context ->
    Processing_context.projection_kind -> unit
  val set_treejoin_log :
    Processing_context.processing_context ->
    Processing_context.treejoin_logical_kind -> unit
  val set_treejoin_phys :
    Processing_context.processing_context ->
    Processing_context.treejoin_physical_kind -> unit
  val set_streaming : Processing_context.processing_context -> bool -> unit
  val set_infer_independence :
    Processing_context.processing_context -> bool -> unit
  val set_dxq_server :
    Processing_context.processing_context ->
    Galax_server_util.evaluate_closure_sig *
    Galax_server_util.evaluate_remote_query_sig *
    Galax_server_util.async_eval_ext_sig *
    Galax_server_util.interpret_hostport_sig -> unit
  val set_dxq : Processing_context.processing_context -> bool -> unit
  val set_dxq_host_port :
    Processing_context.processing_context ->
    string option -> int option -> unit
  val set_dxq_source :
    Processing_context.processing_context ->
    Processing_context.dxq_execution_kind -> unit
  val set_dxq_topology :
    Processing_context.processing_context -> string -> unit
  val set_dxq_drop_msgs :
    Processing_context.processing_context -> bool -> unit
  val set_zerod_host_port :
    Processing_context.processing_context ->
    string option -> int option -> unit
  val set_namespace_env :
    Processing_context.processing_context -> Namespace_context.nsenv -> unit
  val add_schema_location_hints :
    Processing_context.processing_context -> (string * string) list -> unit
  val add_module_location_hints :
    Processing_context.processing_context -> (string * string) list -> unit
  val add_interface_location_hints :
    Processing_context.processing_context -> (string * string) list -> unit
  val get_schema_location_hints :
    Processing_context.processing_context -> (string, string) Hashtbl.t
  val get_module_location_hints :
    Processing_context.processing_context -> (string, string) Hashtbl.t
  val get_interface_location_hints :
    Processing_context.processing_context -> (string, string) Hashtbl.t
  val print_location_hints : (string, string) Hashtbl.t -> unit
  val resolve_schema_location_hint :
    Processing_context.processing_context ->
    string option -> string -> string list
  val resolve_module_location_hint :
    Processing_context.processing_context ->
    string option -> string -> string list
  val resolve_interface_location_hint :
    Processing_context.processing_context ->
    string option -> string -> string list
  val check_config : Processing_context.processing_context -> unit
  val copy_processing_context :
    Processing_context.processing_context ->
    Processing_context.processing_context
end