sig
  type external_context
  type compiled_program
  type compiled_module
  type compiled_library_module
  type compiled_statement
  type prepared_program
  val procctxt_of_compiled_program :
    Galax.compiled_program -> Processing_context.processing_context
  val procctxt_of_prepared_program :
    Galax.prepared_program -> Processing_context.processing_context
  val compiled_program_of_prepared_program :
    Galax.prepared_program -> Galax.compiled_program
  val algebra_context_of_compiled_program :
    Galax.compiled_program -> Execution_context.algebra_context
  val main_module_of_compiled_program :
    Galax.compiled_program -> Galax.compiled_module
  val module_of_compiled_program :
    Galax.compiled_program -> string -> Galax.compiled_library_module
  val nsenv_of_main_module :
    Galax.compiled_program -> Namespace_context.nsenv
  val code_selection_context_of_main_module :
    Galax.compiled_program -> Code_selection_context.code_selection_context
  val load_document :
    Processing_context.processing_context ->
    Galax_io.input_spec -> Dm.node list
  val serialize :
    Processing_context.processing_context ->
    Galax_io.output_spec -> Physical_value.item list -> unit
  val serialize_to_string :
    Processing_context.processing_context ->
    Physical_value.item list -> string
  val default_external_context : unit -> Galax.external_context
  val build_external_context :
    Processing_context.processing_context ->
    Physical_value.item option ->
    Dm_atomic.atomicDayTimeDuration option ->
    (string * Physical_value.item list) list -> Galax.external_context
  val load_standard_library :
    Processing_context.processing_context -> Galax.compiled_program
  val import_prolog_only :
    Galax.compiled_program ->
    bool -> Galax_io.input_spec -> Galax.compiled_program
  val import_library_module :
    Galax.compiled_program -> Galax_io.input_spec -> Galax.compiled_program
  val import_main_module :
    bool ->
    Galax.compiled_program ->
    Galax_io.input_spec ->
    Galax.compiled_program * Galax.compiled_statement list
  val export_server_module :
    Galax.compiled_program ->
    Galax_io.input_spec ->
    Namespace_names.ncname * string * Galax.compiled_program
  val prepare_program :
    Galax.compiled_program ->
    Galax.external_context option -> Galax.prepared_program
  val eval_statement :
    Galax.prepared_program -> Galax_io.input_spec -> Physical_value.item list
  val eval_compiled_statement :
    Galax.prepared_program ->
    Galax.compiled_statement -> Physical_value.item list
  val eval_compiled_closure_statement :
    Galax.prepared_program ->
    Galax.compiled_statement ->
    Xquery_physical_type_ast.physical_type * Physical_value.physical_value
  val compile_serialized_logical_statement :
    Galax.compiled_program ->
    Galax_io.input_spec -> Galax.compiled_program * Galax.compiled_statement
  val compile_serialized_logical_main_module :
    Galax.compiled_program ->
    Galax_io.input_spec ->
    Galax.compiled_program * Galax.compiled_statement list
  val compile_serialized_optimized_main_module :
    Galax.compiled_program ->
    Galax_io.input_spec ->
    Galax.compiled_program * Galax.compiled_statement list
  val compile_serialized_closure :
    Galax.compiled_program ->
    Galax_io.input_spec -> Galax.prepared_program * Galax.compiled_statement
  val compile_serialized_closure_in_module :
    Galax.compiled_program ->
    Galax.compiled_library_module ->
    Galax_io.input_spec -> Galax.prepared_program * Galax.compiled_statement
  val serialize_logical_statement :
    Namespace_context.nsenv ->
    Galax.compiled_statement -> Physical_value.item list
  val serialize_logical_module :
    Namespace_context.nsenv ->
    Galax.compiled_module -> Physical_value.item list
  val validate_document :
    Galax.prepared_program ->
    Physical_value.item list -> Physical_value.item list
  val eval_statement_as_item_cursor :
    Galax.prepared_program ->
    Galax_io.input_spec -> Physical_value.item Cursor.cursor
  val eval_compiled_statement_as_item_cursor :
    Galax.prepared_program ->
    Galax.compiled_statement -> Physical_value.item Cursor.cursor
  val eval_statement_as_sax :
    Galax.prepared_program ->
    Galax_io.input_spec -> Streaming_types.typed_xml_stream
  val eval_compiled_statement_as_sax :
    Galax.prepared_program ->
    Galax.compiled_statement -> Streaming_types.typed_xml_stream
  val serialize_as_item_cursor :
    Processing_context.processing_context ->
    Galax_io.output_spec -> Physical_value.item Cursor.cursor -> unit
  val serialize_as_sax :
    Processing_context.processing_context ->
    Galax_io.output_spec -> Streaming_types.typed_xml_stream -> unit
end