sig
  val build_builtin_fn_code :
    Code_selection_context.code_selection_context ->
    Algebra_type.algop_expr ->
    (Xquery_common_ast.cfname * int) *
    Xquery_algebra_ast.asequencetype option array *
    Xquery_algebra_ast.asequencetype ->
    Algebra_type.alg_eval_code_dep *
    Code_selection_context.code_selection_context
  val build_convert_simple_code :
    Code_selection_context.code_selection_context ->
    Algebra_type.algop_expr ->
    Datatypes.atomic_type ->
    Algebra_type.alg_eval_code_dep *
    Code_selection_context.code_selection_context
  val build_promote_numeric_code :
    Code_selection_context.code_selection_context ->
    Algebra_type.algop_expr ->
    Datatypes.atomic_type ->
    Algebra_type.alg_eval_code_dep *
    Code_selection_context.code_selection_context
  val build_promote_anystring_code :
    Code_selection_context.code_selection_context ->
    Algebra_type.algop_expr ->
    Algebra_type.alg_eval_code_dep *
    Code_selection_context.code_selection_context
  val build_unsafe_promote_numeric_code :
    Code_selection_context.code_selection_context ->
    Algebra_type.algop_expr ->
    Datatypes.atomic_type ->
    Algebra_type.alg_eval_code_dep *
    Code_selection_context.code_selection_context
  val select_physical_op :
    Code_selection_context.code_selection_context ->
    Xquery_algebra_ast.input_signature ->
    Algebra_type.algop_expr ->
    (Xquery_common_ast.cfname * int) *
    Xquery_algebra_ast.asequencetype option array *
    Xquery_algebra_ast.asequencetype ->
    Xquery_physical_algebra_ast.physop_expr_name
end