module SymbolTable: sig end
type 'a
symbol_table
type item = int
val create : ('a -> 'a -> bool) * ('a -> string) -> 'a symbol_table
val mem : 'a symbol_table -> 'a -> bool
val add_symbol : 'a symbol_table -> 'a -> unit
val rm_symbol : 'a symbol_table -> 'a -> unit
val lookup : 'a symbol_table -> 'a -> item
val get_symbol : 'a symbol_table -> item -> 'a
val get_index : 'a symbol_table -> 'a -> item
val iter : ('a -> int -> unit) -> 'a symbol_table -> unit
val eq : 'a symbol_table -> 'a -> 'a -> bool
val to_string : 'a symbol_table -> 'a -> string