sig
  val generic_rule_set :
    Typing_context.static_context Ast_walker_rewrite_context.rewrite_rule_set
  val generic_toplevel_rule_set :
    Typing_context.static_context Ast_walker_rewrite_context.rewrite_rule_set
  type clause_rewriter =
      Typing_context.static_context
      Ast_walker_rewrite_context.rewrite_context ->
      Xquery_core_ast.acfl_expr list ->
      Xquery_core_ast.acfl_expr ->
      Xquery_core_ast.acexpr ->
      Xquery_core_ast.acfl_expr list * Xquery_core_ast.acexpr * bool
  val flwr_rewrite :
    Rewriting_rules_notyping.clause_rewriter ->
    Rewriting_rules_notyping.clause_rewriter ->
    Typing_context.static_context Ast_walker_rewrite_context.rewrite_context ->
    Xquery_core_ast.acexpr -> Xquery_core_ast.acexpr * bool
  val call_rewrite :
    Xquery_common_ast.cfname * int *
    (Typing_context.static_context Ast_walker_rewrite_context.rewrite_context ->
     Xquery_core_ast.acexpr ->
     Xquery_core_ast.acexpr list -> Xquery_core_ast.acexpr * bool) ->
    Typing_context.static_context Ast_walker_rewrite_context.rewrite_context ->
    Xquery_core_ast.acexpr -> Xquery_core_ast.acexpr * bool
end