There are 5 basic operations that can done to named stacks

PUSH takes a value, and then a stack name, and pushes the value to the named stack. To use stack effect notation, it looks like so:

[ value name -- ]

POP takes a stack name, and then puts the top of that stack on the global value stack while removing it from the named stack. The stack notation looks like so:

[ name -- value ]

PEEK takes a stack name, and copies the value at the top of that stack onto the global value stack. The stack notation looks like so:

[ name -- value ]

DROP takes a stack name, and removes the value at the top of that stack. The stack effect notation:

[ name -- ]

RUN takes a stack name and tries to run the value at the top of that stack. For quotations, this represents 'calling' the quotation. For native functions (used to connect JS and StackTalk) the function is called with the vm as an argument. There isn't -one- valid stack effect for RUNs, it depends on what is executed.

If the top of the named stack isn't a quotation or JS function then RUN behaves like PEEK, copying it to the

If the top of the value stack is not a name, then RUN attemtps to execute it directly. If that value isn't runnable, an error is thrown.

There are shortcut sytaxes for some of these operations