sig
  val factorize_statement :
    Typing_context.static_context ->
    Xquery_core_ast.acstatement -> Xquery_core_ast.acstatement
  val factorize_prolog :
    Typing_context.static_context ->
    Xquery_core_ast.acprolog ->
    Typing_context.static_context * Xquery_core_ast.acprolog
  val factorize_xmodule :
    Typing_context.static_context ->
    Xquery_core_ast.acxmodule ->
    Typing_context.static_context * Xquery_core_ast.acxmodule
end