


The standard library Symbolmapstack api defines access to one of the three core compiler state tables, the other two being Linking_Mapstack and Inlining_Mapstack.
The Symbolmapstack api is implemented by the symbolmapstack package.
The Symbolmapstack api source code is in src/lib/compiler/front/typer-stuff/symbolmapstack/symbolmapstack.api.
The above information is manually maintained and may contain errors.
api { Symbolmapstack ;
Entry = symbolmapstack_entry::Symbolmapstack_Entry;
Full_Entry =
{entry:Entry,
modtree:Null_Or(module_level_declarations::Modtree )};
exception UNBOUND;
empty : Symbolmapstack;
get : (Symbolmapstack , symbol::Symbol) -> Entry;
bind : (symbol::Symbol , Entry , Symbolmapstack)
-> Symbolmapstack;
special : ((symbol::Symbol -> Entry)
, (Void -> List(symbol::Symbol )))
-> Symbolmapstack;
atop : (Symbolmapstack , Symbolmapstack) -> Symbolmapstack;
consolidate : Symbolmapstack -> Symbolmapstack;
consolidate_lazy : Symbolmapstack -> Symbolmapstack;
apply : ((symbol::Symbol , Entry) -> Void)
-> Symbolmapstack -> Void;
map : (Entry -> Entry) -> Symbolmapstack -> Symbolmapstack;
fold : ((((symbol::Symbol , Entry)) , X) -> X)
-> X -> Symbolmapstack -> X;
fold_full_entries : ((((symbol::Symbol , Full_Entry)) , X) -> X)
-> X -> Symbolmapstack -> X;
to_sorted_list : Symbolmapstack -> List(((symbol::Symbol , Entry)) );
bind_full_entry : (symbol::Symbol , Full_Entry , Symbolmapstack)
-> Symbolmapstack;
symbols : Symbolmapstack -> List(symbol::Symbol );
filter : (Symbolmapstack , List(symbol::Symbol ))
-> Symbolmapstack;
};


