- Cleanup whether types passed to functions are evaluated or not. At this point, I think types should always be evaluated. That means passing a quote character in front of non-keyword types. So :char and '(:array :char) is the way types should be specified. This may involve stripping the (quote ...) for some implementations like CMUCL which doesn't evaluate the type argument. - Cleanup the meaning of (def-array). Add size parameter - Change dereferencing of pointers to :char and :unsigned-char types. May need to have ensure-char as routine to correctly handle setf expansions. CMUCL strtol is broken because of signedness. Right now, LW prefers unsigned and CMUCL prefers signed string arrays. I lean to having unsigned be the default type. - Add def-union routine - Split implementation-dependent code into separate files in preparation for MCL and CormanLisp ports.