A pseudo S-expression will be a data structure similar to an S-expression, but not garbage collected and (if possible) faster. I've not decided yet whether to use a simple "copy on-set-c?dr" policy or a reference counter. I'll have to benchmark a bit.
Pseudo S-expressions will support fixnums, symbols, booleans, floats, strings, conses and the eol.

Pseudo S-expression will support read and print, but not eval.

The idea is avoiding garbage collections for all the structures which don't need it, for example for messages to be sent over sockets. This should essentially eliminate all GCs for interactive clients after models are loaded, thus reducing pauses and increasing locality.

A separate namespace such as "pseudoscheme" should be used to avoid confusion. The interface will be a subset of the interface in the "scheme" namespace: in particular an SExpression class will be provided.

I've not decided yet whether to provide conversion operators from and to pseusoscheme SExpressions. They would make code more compact, but could they also introduce errors? By now I think not, but the issue must be pondered.