sig
  type project_context
  val build_project_context :
    Streaming_types.resolved_xml_stream ->
    Path_struct.path_fragment_sequence ->
    Streaming_types.resolved_sax_event list ->
    Project_context.project_context
  val get_pfs :
    Project_context.project_context ->
    Path_struct.path_fragment_sequence option
  val get_local_buffer :
    Project_context.project_context ->
    Streaming_types.resolved_sax_event list
  val get_next_xml_event :
    Project_context.project_context -> Streaming_types.resolved_sax_event
  val project_stream_is_empty : Project_context.project_context -> bool
  val get_stream :
    Project_context.project_context -> Streaming_types.resolved_xml_stream
  val get_next_buffered_sax_event :
    Project_context.project_context ->
    Streaming_types.resolved_sax_event option
  val peek_next_buffered_sax_event :
    Project_context.project_context ->
    Streaming_types.resolved_sax_event option
  val refill_local_buffer :
    Project_context.project_context ->
    Streaming_types.resolved_sax_event list -> unit
  val push_project_context_get_subtree :
    Project_context.project_context ->
    Streaming_types.resolved_sax_event -> unit
  val push_project_context_keep_moving_skip_node :
    Project_context.project_context ->
    Streaming_types.resolved_sax_event ->
    Path_struct.path_fragment_sequence -> unit
  val push_project_context_keep_moving_preserve_node :
    Project_context.project_context ->
    Streaming_types.resolved_sax_event ->
    Path_struct.path_fragment_sequence -> unit
  val push_project_context_preserve_node :
    Project_context.project_context ->
    Streaming_types.resolved_sax_event list -> unit
  val push_project_context_skip_node :
    Project_context.project_context -> unit
  val pop_project_context :
    Project_context.project_context ->
    Streaming_types.resolved_sax_event list -> unit
end