


The standard library Symbol_Table api defines access to one of the three core compiler state tables, the other two being Linking_Table and Inlining_Table.
The Symbol_Table api is implemented by the symbol_table package.
The Symbol_Table api source code is in src/lib/compiler/front/typecheck-stuff/symbol-table/symbol-table.api.
The above information is manually maintained and may contain errors.
api { Symbol_Table ;
Entry = symbol_table_entry::Symbol_Table_Entry;
Full_Entry = (Entry , Null_Or(module::Module_Tree ));
exception UNBOUND;
empty : Symbol_Table;
get : (Symbol_Table , symbol::Symbol) -> Entry;
bind : (symbol::Symbol , Entry , Symbol_Table)
-> Symbol_Table;
special : ((symbol::Symbol -> Entry)
, (Void -> List(symbol::Symbol )))
-> Symbol_Table;
atop : (Symbol_Table , Symbol_Table) -> Symbol_Table;
consolidate : Symbol_Table -> Symbol_Table;
consolidate_lazy : Symbol_Table -> Symbol_Table;
apply : ((symbol::Symbol , Entry) -> Void)
-> Symbol_Table -> Void;
map : (Entry -> Entry) -> Symbol_Table -> Symbol_Table;
fold : ((((symbol::Symbol , Entry)) , X) -> X)
-> X -> Symbol_Table -> X;
realfold : ((((symbol::Symbol , Full_Entry)) , X) -> X)
-> X -> Symbol_Table -> X;
to_sorted_list : Symbol_Table -> List(((symbol::Symbol , Entry)) );
bind0 : (symbol::Symbol , Full_Entry , Symbol_Table)
-> Symbol_Table;
symbols : Symbol_Table -> List(symbol::Symbol );
filter : (Symbol_Table , List(symbol::Symbol )) -> Symbol_Table;
};


