It does make sense, but then don't we have the same issue with zlib.scm: --8<---------------cut here---------------start------------->8--- (define gzread! (let ((proc (zlib-procedure int "gzread" (list '* '* unsigned-int)))) (lambda* (gzfile bv #:optional (start 0) (count (bytevector-length bv))) "Read up to COUNT bytes from GZFILE into BV at offset START. Return the number of uncompressed bytes actually read; it is zero if COUNT is zero or if the end-of-stream has been reached." ... --8<---------------cut here---------------end--------------->8--- I initially tried to mimic zlib.scm and this part confused me a lot back then. -- Pierre Neidhardt https://ambrevar.xyz/