sig
  type algebra_context
  val build_algebra_context : unit -> Execution_context.algebra_context
  val default_algebra_context : unit -> Execution_context.algebra_context
  val get_current_datetime :
    Execution_context.algebra_context -> Dm_atomic.atomicDateTime
  val get_timezone :
    Execution_context.algebra_context -> Dm_atomic.atomicDayTimeDuration
  val set_timezone :
    Execution_context.algebra_context ->
    Dm_atomic.atomicDayTimeDuration -> unit
  val add_key_to_algebra_context :
    Execution_context.algebra_context ->
    string * string ->
    Physical_value.item list -> Execution_context.algebra_context
  val key_from_algebra_context :
    Execution_context.algebra_context ->
    string * string -> Physical_value.item list
  val copy_algebra_context :
    Execution_context.algebra_context -> Execution_context.algebra_context
  val get_current_snap_semantic :
    Execution_context.algebra_context -> Xquery_common_ast.snap_modifier
  val set_current_snap_semantic :
    Execution_context.algebra_context ->
    Xquery_common_ast.snap_modifier -> Execution_context.algebra_context
  val get_ordering_structure :
    Execution_context.algebra_context -> Update_ordering.update_holder
  val allocate_update_holder :
    Execution_context.algebra_context -> Execution_context.algebra_context
  val enter_snap :
    Execution_context.algebra_context ->
    Xquery_common_ast.snap_modifier -> Execution_context.algebra_context
  val alive_documents_from_algebra_context :
    Execution_context.algebra_context -> Fn_doc.alive_documents
end