module Code_util_materialize: sig .. end
type sequence_index = int 
type restore_function = Physical_value.dom_tuple -> unit 
val export_input_tuple_as_tuple_cursor : Code_selection_context.code_selection_context ->
       Xquery_physical_type_ast.physical_tuple_type ->
       Physical_value.tuple_unit Cursor.cursor -> Physical_value.tuple Cursor.cursor
val import_tuple_cursor_as_input_tuple : Code_selection_context.code_selection_context ->
       Xquery_physical_type_ast.physical_tuple_type ->
       Physical_value.tuple Cursor.cursor -> Physical_value.tuple_unit Cursor.cursor
type array_materialize_fun = Algebra_type.eval_fun ->
       Execution_context.algebra_context ->
       Physical_value.tuple_unit Cursor.cursor -> Physical_value.dom_table 
val materialize_cursor_to_dom_value_array : Code_selection_context.code_selection_context ->
       Xquery_algebra_ast.free_variable_desc ->
       unit ->
       array_materialize_fun *
       restore_function * Xquery_common_ast.cvname array
type hash_materialize_fun = Algebra_type.eval_fun ->
       Execution_context.algebra_context ->
       Physical_value.dom_table -> int Dm_atomic.AtomicValueHash.t 
val materialize_array_to_hash : Code_selection_context.code_selection_context ->
       Xquery_algebra_ast.free_variable_desc ->
       restore_function ->
       Code_util_predicates.predicate_branch * Namespace_context.nsenv ->
       hash_materialize_fun *
       restore_function * Xquery_common_ast.cvname array
type sort_array_materialize_fun = Algebra_type.eval_fun ->
       Execution_context.algebra_context ->
       Physical_value.dom_table -> Code_util_ridlist.rid Dm_atomic_btree.btree 
val materialize_array_to_sorted_array_index : Code_selection_context.code_selection_context ->
       Xquery_algebra_ast.free_variable_desc ->
       restore_function ->
       Code_util_predicates.predicate_branch * Namespace_context.nsenv ->
       sort_array_materialize_fun
val build_materialize_table_code : ('a, 'b) Xquery_algebra_ast.aalgop_expr ->
       Code_selection_context.code_selection_context ->
       Algebra_type.eval_fun ->
       Execution_context.algebra_context ->
       Physical_value.tuple_unit Cursor.cursor ->
       Physical_value.tuple_unit Cursor.cursor
val annotate_materialization : Code_selection_context.code_selection_context ->
       Algebra_type.algop_expr -> unit
val should_materialize : Algebra_type.algop_expr -> bool
val produces_a_table : Algebra_type.algop_expr -> bool