sig
  type 'a rewrite_context
  and 'a rewrite_rule =
      'Ast_walker_rewrite_context.rewrite_context ->
      Xquery_core_ast.acexpr -> Xquery_core_ast.acexpr * bool
  and 'a rewrite_prolog_rule =
      'Ast_walker_rewrite_context.rewrite_context ->
      Xquery_core_ast.acvar_decl ->
      'Ast_walker_rewrite_context.rewrite_context *
      Xquery_core_ast.acvar_decl * bool
  type 'a rewrite_rule_set = 'Ast_walker_rewrite_context.rewrite_rule list
  type 'a rewrite_prolog_rule_set =
      'Ast_walker_rewrite_context.rewrite_prolog_rule list
  val build_rewrite_context :
    '->
    'Ast_walker_rewrite_context.rewrite_rule_set ->
    'Ast_walker_rewrite_context.rewrite_prolog_rule_set ->
    'Ast_walker_rewrite_context.rewrite_context
  val get_context : 'Ast_walker_rewrite_context.rewrite_context -> 'a
  val get_rewrite_rules :
    'Ast_walker_rewrite_context.rewrite_context ->
    'Ast_walker_rewrite_context.rewrite_rule list
  val get_rewrite_prolog_rules :
    'Ast_walker_rewrite_context.rewrite_context ->
    'Ast_walker_rewrite_context.rewrite_prolog_rule list
end