Cond-expand and macros were designed for that job. I'm going to be implementinga library in the future that can use either bytevectors, u8vectors, or u1vectors throughexactly those means. Bytevectors and u8vectors, which hopefully will be thesame thing on most Schemes (Guile is an exception), use 8 times as muchspace, but they are more efficient to read and write one element at a timethan u1vectors are, at least on normal architectures.