sig
  type path = (Xquery_common_ast.axis * Xquery_algebra_ast.anode_test) list
  type source_id = Document_id of string | Constructor_id of int
  type subtree = Subtree | NoSubtree
  type path_fragment = Alg_path_struct.path * Alg_path_struct.subtree
  type path_fragment_sequence = Alg_path_struct.path_fragment list
  type rooted_path =
      Alg_path_struct.source_id * Alg_path_struct.path_fragment
  type rooted_path_sequence = Alg_path_struct.rooted_path list
  type paths =
      Alg_path_struct.rooted_path_sequence *
      (Xquery_common_ast.crname * Alg_path_struct.rooted_path_sequence) list *
      Alg_path_struct.rooted_path_sequence *
      Alg_path_struct.rooted_path_sequence
  type full_annotation = {
    mutable path_analysis : Alg_path_struct.paths option;
    mutable streaming_annot : Alg_path_struct.rooted_path_sequence option;
  }
  type path_annotation =
      Alg_path_struct.full_annotation option Pervasives.ref
end