external get_symbol_at : t -> symbol -> node -> symbol = "caml_grammar_get_symbol_at"
external first_child : t -> symbol -> node -> node = "caml_grammar_first_child"
external next_sibling : t -> symbol -> node -> node = "caml_grammar_next_sibling"
external get_symbol_at : t -> symbol -> node -> symbol = "caml_grammar_get_symbol_at"
external first_child : t -> symbol -> node -> node = "caml_grammar_first_child"
external next_sibling : t -> symbol -> node -> node = "caml_grammar_next_sibling"
external parameter : [< any_type ] Node.t -> p_symbol = "%identity"
external terminal : [< any_type ] Node.t -> t_symbol = "%identity"
external non_terminal : [< any_type ] Node.t -> n_symbol = "%identity"
external get_id1 : t -> n_symbol -> tn_symbol = "caml_grammar_get_id1"
external get_id2 : t -> n_symbol -> tn_symbol = "caml_grammar_get_id2"
external parameter : [< any_type ] Node.t -> p_symbol = "%identity"
external terminal : [< any_type ] Node.t -> t_symbol = "%identity"
external non_terminal : [< any_type ] Node.t -> n_symbol = "%identity"
external get_id1 : t -> n_symbol -> tn_symbol = "caml_grammar_get_id1"
external get_id2 : t -> n_symbol -> tn_symbol = "caml_grammar_get_id2"
val num_params : n_symbol -> int
val num_children : [< t_type | n_type ] Node.t -> int
external is_nil : t -> t_symbol -> bool = "caml_grammar_is_nil"
val tag : t_symbol -> Tag.t
val num_params : n_symbol -> int
val num_children : [< t_type | n_type ] Node.t -> int
external is_nil : t -> t_symbol -> bool = "caml_grammar_is_nil"
val tag : t_symbol -> Tag.t