sig
  val insert_sbdo_xpath :
    Typing_context.static_context Ast_walker_rewrite_context.rewrite_context ->
    Xquery_core_ast.acexpr -> Xquery_core_ast.acexpr * bool
  val decompose_flwor :
    Typing_context.static_context Ast_walker_rewrite_context.rewrite_context ->
    Xquery_core_ast.acexpr -> Xquery_core_ast.acexpr * bool
  val convert_where_clause :
    Typing_context.static_context Ast_walker_rewrite_context.rewrite_context ->
    Xquery_core_ast.acexpr -> Xquery_core_ast.acexpr * bool
  val insert_scrambling_ddo :
    Typing_context.static_context Ast_walker_rewrite_context.rewrite_context ->
    Xquery_core_ast.acexpr -> Xquery_core_ast.acexpr * bool
  val insert_scrambling_if :
    Typing_context.static_context Ast_walker_rewrite_context.rewrite_context ->
    Xquery_core_ast.acexpr -> Xquery_core_ast.acexpr * bool
  val propagate_scrambling_bool :
    Typing_context.static_context Ast_walker_rewrite_context.rewrite_context ->
    Xquery_core_ast.acexpr -> Xquery_core_ast.acexpr * bool
  val propagate_scrambling_ddo :
    Typing_context.static_context Ast_walker_rewrite_context.rewrite_context ->
    Xquery_core_ast.acexpr -> Xquery_core_ast.acexpr * bool
  val propagate_scrambling_for_let :
    Typing_context.static_context Ast_walker_rewrite_context.rewrite_context ->
    Xquery_core_ast.acexpr -> Xquery_core_ast.acexpr * bool
  val propagate_scrambling_for :
    Typing_context.static_context Ast_walker_rewrite_context.rewrite_context ->
    Xquery_core_ast.acexpr -> Xquery_core_ast.acexpr * bool
  val propagate_scrambling_if :
    Typing_context.static_context Ast_walker_rewrite_context.rewrite_context ->
    Xquery_core_ast.acexpr -> Xquery_core_ast.acexpr * bool
  val remove_scrambled_sbdo :
    Typing_context.static_context Ast_walker_rewrite_context.rewrite_context ->
    Xquery_core_ast.acexpr -> Xquery_core_ast.acexpr * bool
  val substitution :
    Typing_context.static_context Ast_walker_rewrite_context.rewrite_context ->
    Xquery_core_ast.acexpr -> Xquery_core_ast.acexpr * bool
  val loop_fusion :
    Typing_context.static_context Ast_walker_rewrite_context.rewrite_context ->
    Xquery_core_ast.acexpr -> Xquery_core_ast.acexpr * bool
  val loop_split :
    Typing_context.static_context Ast_walker_rewrite_context.rewrite_context ->
    Xquery_core_ast.acexpr -> Xquery_core_ast.acexpr * bool
  val nested_loop_split :
    Typing_context.static_context Ast_walker_rewrite_context.rewrite_context ->
    Xquery_core_ast.acexpr -> Xquery_core_ast.acexpr * bool
  val condition_detection :
    Typing_context.static_context Ast_walker_rewrite_context.rewrite_context ->
    Xquery_core_ast.acexpr -> Xquery_core_ast.acexpr * bool
  val condition_shift :
    Typing_context.static_context Ast_walker_rewrite_context.rewrite_context ->
    Xquery_core_ast.acexpr -> Xquery_core_ast.acexpr * bool
  val return_condition_lift :
    Typing_context.static_context Ast_walker_rewrite_context.rewrite_context ->
    Xquery_core_ast.acexpr -> Xquery_core_ast.acexpr * bool
  val nested_return_condition_lift :
    Typing_context.static_context Ast_walker_rewrite_context.rewrite_context ->
    Xquery_core_ast.acexpr -> Xquery_core_ast.acexpr * bool
  val return_result_lift :
    Typing_context.static_context Ast_walker_rewrite_context.rewrite_context ->
    Xquery_core_ast.acexpr -> Xquery_core_ast.acexpr * bool
  val nested_return_result_lift :
    Typing_context.static_context Ast_walker_rewrite_context.rewrite_context ->
    Xquery_core_ast.acexpr -> Xquery_core_ast.acexpr * bool
  val for_condition_lift :
    Typing_context.static_context Ast_walker_rewrite_context.rewrite_context ->
    Xquery_core_ast.acexpr -> Xquery_core_ast.acexpr * bool
  val trivial_dot_condition :
    Typing_context.static_context Ast_walker_rewrite_context.rewrite_context ->
    Xquery_core_ast.acexpr -> Xquery_core_ast.acexpr * bool
  val trivial_loop :
    Typing_context.static_context Ast_walker_rewrite_context.rewrite_context ->
    Xquery_core_ast.acexpr -> Xquery_core_ast.acexpr * bool
  val dot_introduction :
    Typing_context.static_context Ast_walker_rewrite_context.rewrite_context ->
    Xquery_core_ast.acexpr -> Xquery_core_ast.acexpr * bool
  val dot_loop :
    Typing_context.static_context Ast_walker_rewrite_context.rewrite_context ->
    Xquery_core_ast.acexpr -> Xquery_core_ast.acexpr * bool
  val shortening_condition :
    Typing_context.static_context Ast_walker_rewrite_context.rewrite_context ->
    Xquery_core_ast.acexpr -> Xquery_core_ast.acexpr * bool
  val filter_fusion :
    Typing_context.static_context Ast_walker_rewrite_context.rewrite_context ->
    Xquery_core_ast.acexpr -> Xquery_core_ast.acexpr * bool
  val remove_redundant_sbdo :
    Typing_context.static_context Ast_walker_rewrite_context.rewrite_context ->
    Xquery_core_ast.acexpr -> Xquery_core_ast.acexpr * bool
  val check_normal_form :
    Typing_context.static_context Ast_walker_rewrite_context.rewrite_context ->
    Xquery_core_ast.acexpr -> Xquery_core_ast.acexpr * bool
  val reintroduce_where :
    Typing_context.static_context Ast_walker_rewrite_context.rewrite_context ->
    Xquery_core_ast.acexpr -> Xquery_core_ast.acexpr * bool
  val group_flwor_block :
    Typing_context.static_context Ast_walker_rewrite_context.rewrite_context ->
    Xquery_core_ast.acexpr -> Xquery_core_ast.acexpr * bool
  val join_support_hack :
    Typing_context.static_context Ast_walker_rewrite_context.rewrite_context ->
    Xquery_core_ast.acexpr -> Xquery_core_ast.acexpr * bool
end