sig
  val mkcpattern : Xquery_core_ast.cpattern_desc -> Xquery_core_ast.cpattern
  val fmkcpattern :
    Xquery_core_ast.cpattern_desc -> Finfo.finfo -> Xquery_core_ast.cpattern
  val mkcsequencetype :
    Xquery_core_ast.csequencetype_desc -> Xquery_core_ast.csequencetype
  val fmkcsequencetype :
    Xquery_core_ast.csequencetype_desc ->
    Finfo.finfo -> Xquery_core_ast.csequencetype
  val fmkcexpr :
    Xquery_core_ast.acexpr_desc ->
    Xquery_ast.expr_handle -> Finfo.finfo -> Xquery_core_ast.acexpr
  val fmkacexpr :
    Xquery_core_ast.acexpr_desc ->
    Xquery_core_ast_annotation.ast_annot ->
    Xquery_ast.expr_handle -> Finfo.finfo -> Xquery_core_ast.acexpr
  val fmkcfunction_def :
    Xquery_core_ast.acfunction_def_desc ->
    Finfo.finfo -> Xquery_core_ast.acfunction_def
  val fmkcvar_decl :
    Xquery_core_ast.acvar_decl_desc ->
    Finfo.finfo -> Xquery_core_ast.acvar_decl
  val fmkcserver_decl :
    Xquery_core_ast.acserver_decl_desc ->
    Finfo.finfo -> Xquery_core_ast.acserver_decl
  val fmkcindex_def :
    Xquery_core_ast.acindex_def_desc ->
    Finfo.finfo -> Xquery_core_ast.acindex_def
  val fmkcprolog :
    Xquery_core_ast.acfunction_def list ->
    Xquery_core_ast.acvar_decl list ->
    Xquery_core_ast.acindex_def list -> Xquery_core_ast.acprolog
  val fmkcmodule_from_library_module :
    Xquery_core_ast.acxmodule ->
    Xquery_core_ast.acstatement list -> Xquery_core_ast.acxmodule
  type cexpr_kind =
      CEKUnordered
    | CEKOrdered
    | CEKFLWOR
    | CEKOrderBy
    | CEKIf
    | CEKWhile
    | CEKTypeswitch
    | CEKVar
    | CEKScalar
    | CEKProtoValue
    | CEKDocument
    | CEKPI
    | CEKPIComputed
    | CEKComment
    | CEKCommentComputed
    | CEKText
    | CEKCharRef
    | CEKTextComputed
    | CEKCall
    | CEKOverloadedCall
    | CEKSeq
    | CEKEmpty
    | CEKElem
    | CEKAnyElem
    | CEKAttr
    | CEKAnyAttr
    | CEKError
    | CEKTreat
    | CEKValidate
    | CEKCast
    | CEKCastable
    | CEKAxis
    | CEKSome
    | CEKEvery
    | CEKLetServerImplement
    | CEKExecute
    | CEKForServerClose
    | CEKEvalClosure
    | CEKCopy
    | CEKDelete
    | CEKDetach
    | CEKInsert
    | CEKRename
    | CEKReplace
    | CEKSnap
    | CEKLetvar
    | CEKSet
    | CEKImperativeSeq
  val get_cexpr_kind :
    Xquery_core_ast.acexpr -> Xquery_core_ast_util.cexpr_kind
  val merge_cmodules :
    Xquery_core_ast.acxmodule ->
    Xquery_core_ast.acxmodule -> Xquery_core_ast.acxmodule
  val mkcvar :
    Xquery_common_ast.cvname ->
    Xquery_ast.expr_handle -> Finfo.finfo -> Xquery_core_ast.acexpr
  val cexpr_fs_dot :
    Xquery_ast.expr_handle -> Finfo.finfo -> Xquery_core_ast.acexpr
  val cexpr_fs_sequence :
    Xquery_ast.expr_handle -> Finfo.finfo -> Xquery_core_ast.acexpr
  val cexpr_fs_position :
    Xquery_ast.expr_handle -> Finfo.finfo -> Xquery_core_ast.acexpr
  val cexpr_fs_last :
    Xquery_ast.expr_handle -> Finfo.finfo -> Xquery_core_ast.acexpr
  val cexpr_empty :
    Xquery_ast.expr_handle -> Finfo.finfo -> Xquery_core_ast.acexpr
  val map_to_sequence :
    Xquery_ast.expr_handle ->
    Finfo.finfo -> Xquery_core_ast.acexpr list -> Xquery_core_ast.acexpr
  val map_to_imperative_sequence :
    Xquery_ast.expr_handle ->
    Finfo.finfo -> Xquery_core_ast.acexpr list -> Xquery_core_ast.acexpr
  val all_cflwr_bindings :
    Xquery_core_ast.acfl_expr list -> Xquery_common_ast.cvname list
  val make_let_flwor :
    Xquery_core_ast.acfl_expr list ->
    Xquery_core_ast.acexpr ->
    Xquery_core_ast_annotation.ast_annot ->
    Xquery_ast.expr_handle -> Finfo.finfo -> Xquery_core_ast.acexpr
  val make_for_flwor :
    Xquery_core_ast.acfl_expr list ->
    Xquery_core_ast.acexpr ->
    Xquery_core_ast_annotation.ast_annot ->
    Xquery_ast.expr_handle -> Finfo.finfo -> Xquery_core_ast.acexpr
  val remove_empty_textnodes :
    Xquery_core_ast.acexpr list -> Xquery_core_ast.acexpr list
  val get_first_fl_clause :
    Xquery_core_ast.acexpr ->
    Xquery_core_ast.acfl_expr option * Xquery_core_ast.acexpr
  val add_first_fl_clause :
    Xquery_core_ast.acfl_expr ->
    Xquery_core_ast.acexpr -> Xquery_core_ast.acexpr
  val build_flwor_from_fl_clauses :
    Xquery_core_ast.acfl_expr list ->
    Xquery_core_ast.acexpr -> Xquery_core_ast.acexpr
  val set_annotation_for_cexpr :
    Xquery_core_ast.acexpr -> Xquery_core_ast_annotation.ast_annot -> unit
  val get_type_annotation_from_cexpr :
    Xquery_core_ast.acexpr -> Xquery_type_core_ast.cxtype
  val set_type_annotation_for_cexpr :
    Xquery_core_ast.acexpr -> Xquery_type_core_ast.cxtype -> unit
  val get_expr_from_insert_location :
    Xquery_core_ast.acinsert_location -> Xquery_core_ast.acexpr
  val has_max_one : Xquery_core_ast.acexpr -> bool
end