Symbols start with the pound sign character (#) and consist of all following characters up to the next non-escaped whitespace, unless the pound sign is followed exactly by a string literal, in which case the string's contents become the identifier for the symbol. So, for example, the following are all valid symbols and symbol literals:
#key:word:expression:
#something_with_underscores
#'A full string with a \nnewline in it.'
#'@' "@ and other reserved characters must be escaped to deal with their lexical characteristics."
Internally, Slate currently keeps one global table for symbols, and uses individual context objects to hold local bindings.4