sig
  type parse_cat =
      ParseTerminal of string
    | ParseNonTerminal of string * int * int array
  and parse_rhs = ParseRhs of Parsetree.parse_node list
  and parse_node =
      ParseNode of Parsetree.parse_cat * Parsetree.parse_rhs list
  val print_parse_tree : Parsetree.parse_node -> unit
  val lookup_matches :
    int ->
    Chart.subitem ->
    Chart.chart -> Grammar.grammar -> int -> Chart.subitem list
  val recover_parse_tree :
    Grammar.grammar -> int -> Chart.chart -> Parsetree.parse_node
end