Creating a shared array based on a bytevector results with an object whose print representation is identical with a print-representation of a bytevector:
(define bv #vu8(0 1 2 3)) (define bv/shared (make-shared-array bv (lambda(i)(list (+ i 2))) '(0 1))) bv/shared ====> #vu8(2 3) However, accessing these "shared bytevectors" using the bytevector api is impossible: (bytevector-u8-ref bv/shared 0) ====> error: wrong type argument in position 1 (expecting bytevector): #vu8(2 3) Since the print-representation is identical, this behaviour is unexpected. Furthermore, the lack of capability of creating shared bytevectors limits their usefullness. On the other hand, if the shared bytevector remains contiguous, there should be no performance concerns.