sig
  type project_context
  val build_project_context :
    Streaming_types.typed_xml_stream ->
    Alg_path_struct.path_fragment_sequence ->
    Streaming_types.typed_annotated_sax_event list ->
    Alg_project_context.project_context
  val get_pfs :
    Alg_project_context.project_context ->
    Alg_path_struct.path_fragment_sequence option
  val get_local_buffer :
    Alg_project_context.project_context ->
    Streaming_types.typed_annotated_sax_event list
  val get_next_xml_event :
    Alg_project_context.project_context ->
    Streaming_types.typed_annotated_sax_event
  val project_stream_is_empty : Alg_project_context.project_context -> bool
  val get_stream :
    Alg_project_context.project_context -> Streaming_types.typed_xml_stream
  val get_next_buffered_sax_event :
    Alg_project_context.project_context ->
    Streaming_types.typed_annotated_sax_event option
  val peek_next_buffered_sax_event :
    Alg_project_context.project_context ->
    Streaming_types.typed_annotated_sax_event option
  val refill_local_buffer :
    Alg_project_context.project_context ->
    Streaming_types.typed_annotated_sax_event list -> unit
  val push_project_context_get_subtree :
    Alg_project_context.project_context ->
    Streaming_types.typed_annotated_sax_event -> unit
  val push_project_context_keep_moving_skip_node :
    Alg_project_context.project_context ->
    Streaming_types.typed_annotated_sax_event ->
    Alg_path_struct.path_fragment_sequence -> unit
  val push_project_context_keep_moving_preserve_node :
    Alg_project_context.project_context ->
    Streaming_types.typed_annotated_sax_event ->
    Alg_path_struct.path_fragment_sequence -> unit
  val push_project_context_preserve_node :
    Alg_project_context.project_context ->
    Streaming_types.typed_annotated_sax_event list -> unit
  val push_project_context_skip_node :
    Alg_project_context.project_context -> unit
  val pop_project_context :
    Alg_project_context.project_context ->
    Streaming_types.typed_annotated_sax_event list -> unit
end