sig
  module Make :
    functor (Structure : Structure.S->
      sig
        module Dump :
          sig
            val print_symbol : Format.formatter -> Structure.symbol -> unit
            val print_meta :
              Format.formatter -> string -> Structure.symbol list -> unit
            val print_symbol1 : Format.formatter -> Structure.symbol -> unit
            val print_rule :
              Format.formatter -> Structure.symbol list -> unit
            val print_level :
              Format.formatter ->
              (Format.formatter -> unit -> unit) ->
              Structure.symbol list list -> unit
            val levels : Format.formatter -> Structure.level list -> unit
            val entry : Format.formatter -> Structure.internal_entry -> unit
          end
        module Print :
          sig
            val flatten_tree : Structure.tree -> Structure.symbol list list
            val print_symbol : Format.formatter -> Structure.symbol -> unit
            val print_meta :
              Format.formatter -> string -> Structure.symbol list -> unit
            val print_symbol1 : Format.formatter -> Structure.symbol -> unit
            val print_rule :
              Format.formatter -> Structure.symbol list -> unit
            val print_level :
              Format.formatter ->
              (Format.formatter -> unit -> unit) ->
              Structure.symbol list list -> unit
            val levels : Format.formatter -> Structure.level list -> unit
            val entry : Format.formatter -> Structure.internal_entry -> unit
          end
        module Tools :
          sig
            val empty_entry : string -> '-> 'b
            val stream_map : ('-> 'b) -> 'Stream.t -> 'Stream.t
            val keep_prev_loc :
              ('a * Structure.Loc.t) Stream.t ->
              ('a * Structure.token_info) Stream.t
            val drop_prev_loc :
              ('a * Structure.token_info) Stream.t ->
              ('a * Structure.Loc.t) Stream.t
            val get_cur_loc :
              ('a * Structure.token_info) Stream.t -> Structure.Loc.t
            val get_prev_loc :
              ('a * Structure.token_info) Stream.t -> Structure.Loc.t
            val is_level_labelled : string -> Structure.level -> bool
            val warning_verbose : bool ref
            val get_token_list :
              '->
              Structure.symbol list ->
              Structure.symbol ->
              Structure.tree ->
              (Structure.symbol list * Structure.symbol * Structure.tree)
              option
            val is_antiquot : string -> bool
            val eq_Stoken_ids : string -> string -> bool
            val logically_eq_symbols :
              Structure.internal_entry ->
              Structure.symbol -> Structure.symbol -> bool
            val eq_symbol : Structure.symbol -> Structure.symbol -> bool
          end
        type 'a t = Structure.internal_entry
        val name : Structure.internal_entry -> string
        val print : Format.formatter -> Structure.internal_entry -> unit
        val dump : Format.formatter -> Structure.internal_entry -> unit
        val mk : Structure.gram -> string -> Structure.internal_entry
        val action_parse :
          Structure.internal_entry ->
          Structure.token_stream -> Structure.Action.t
        val lex :
          Structure.internal_entry ->
          Structure.Loc.t ->
          char Stream.t -> (Structure.Token.t * Structure.Loc.t) Stream.t
        val lex_string :
          Structure.internal_entry ->
          Structure.Loc.t ->
          string -> (Structure.Token.t * Structure.Loc.t) Stream.t
        val filter :
          Structure.internal_entry ->
          (Structure.Token.t * Structure.Token.Loc.t) Stream.t ->
          (Structure.Token.t * Structure.token_info) Stream.t
        val parse_tokens_after_filter :
          Structure.internal_entry -> Structure.token_stream -> 'a
        val parse_tokens_before_filter :
          Structure.internal_entry ->
          (Structure.Token.t * Structure.Token.Loc.t) Stream.t -> 'a
        val parse :
          Structure.internal_entry -> Structure.Loc.t -> char Stream.t -> 'a
        val parse_string :
          Structure.internal_entry -> Structure.Loc.t -> string -> 'a
        val of_parser :
          Structure.gram ->
          string ->
          (Structure.token_stream -> 'a) ->
          'Camlp4.Struct.Grammar.Entry.Make.t
        val setup_parser :
          Structure.internal_entry -> (Structure.token_stream -> 'a) -> unit
        val clear : Structure.internal_entry -> unit
        val obj : '-> 'a
      end
end