This lists the syntax for all of the various types.
The reader syntax is defined in memmgmt/scanner.l and memmgmt/parser.y.
| object | (INT :)? ... | 
| obj_id | = INT | 
| integer | -?[0-9]+ or 'c' or '\c' | 
| mmstring | "..." (with backslash escapes) | 
| or x"..." (hex) | |
| Symbol | SYMBOL or PSYMBOL | 
| Ref | REF object | 
| link | ? Symbol | 
| vector | '(' object... ')' | 
| < linked_vector... > | |
| linked_vector - INT : INT | |
| linked_vector + object @ INT | |
| linked_vector ^ linked_vector @ INT | |
| linked_vector [ INT : INT ] | |
| hash | & PSYMBOL or & (~ INT)? hb | 
| hb | (! INT)? { (object => object)... } | 
| User_object | (. or linked_user_object) | hash | 
| Wait | INT FAR ("..." or SYMBOL or obj_id) INT ("..." or obj_id) | 
| arg_cont | CONT { wait INT fun_value } | 
| std_cont | CONT { wait INT INT (nil or GLOBAL or PSYMBOL or FAR ("..." or SYMBOL or obj_id) INT) } | 
| fun_value | linked_fun_value , vector @ INT | 
| or $ linked_vector | |
| or * ("..." or SYMBOL or obj_id) | |
| or ` INT linked_fun_value o linked_fun_value |