All data nodes are effectively cons cells consisting of two pointers and one or two bytes of identification flags (9 or 10 bytes per cell). Node space is managed and garbage collected by XLISP. Array and string storage is either allocated by the C runtime or managed and garbaged collected by XLISP (compilation option). If C does the allocation, memory fragmentation can occur. Fragmentation can be eliminated by saving the image and restarting XLISP-PLUS.
1. name symbol or NIL
2. 'lambda or 'macro
3. list of required arguments
4. optional arguments as list of (<arg> <init> <specified-p>) triples.
5. &rest argument
6. &key arguments as list of (<key> <arg> <init> <specified-p>) quadruples.
7. &aux arguments as list of (<arg> <init>) pairs.
8. function body
9. value environment (see page 86 for format)
10. function environment
11. argument list (unprocessed)