sig
  type select_single_op_fn =
      Code_selection_context.code_selection_context ->
      Algebra_type.algop_expr ->
      Code_selection_context.code_selection_context
  val build_order_by_code :
    Code_selection_context.code_selection_context ->
    Algebra_type.algop_expr ->
    Xquery_common_ast.stablekind *
    (Xquery_common_ast.sortkind * Xquery_common_ast.emptysortkind) list *
    Xquery_algebra_ast.aoverloaded_signature_table ->
    Algebra_type.alg_eval_code_dep *
    Code_selection_context.code_selection_context
  val build_group_code :
    Code_selection_context.code_selection_context ->
    Algebra_type.algop_expr ->
    Code_group_order.select_single_op_fn ->
    Xquery_algebra_ast.group_desc list ->
    Algebra_type.alg_eval_code_dep *
    Code_selection_context.code_selection_context
end