According to the manual: 6.12.2 Binary I/O ----------------- [...] To use these routines, first include the binary I/O module: (use-modules (ice-9 binary-ports)) [...] The end-of-file object is unlike any other kind of object: it’s not a pair, a symbol, or anything else. To check if a value is the end-of-file object, use the ‘eof-object?’ predicate. -- Scheme Procedure: eof-object? x -- C Function: scm_eof_object_p (x) Return ‘#t’ if X is an end-of-file object, or ‘#f’ otherwise. However, eof-object? is not exported by (ice-9 binary-ports): scheme@(guile-user)> (@ (ice-9 binary-ports) eof-object?) ice-9/boot-9.scm:1685:16: In procedure raise-exception: Unbound variable: eof-object? But it is imported from (ice-9 ports): scheme@(guile-user) [1]> (@ (ice-9 ports) eof-object?) $1 = # Could an appropriate export be added to (ice-9 binary-ports)? Or the manual adjusted to note you need to import (ice-9 ports) to get eof-object? Greetings, Maxime