On Fri, Feb 7, 2020 at 10:04 AM John Cowan <xxxxxx@ccil.org> wrote:
 
The RnRS standards don't specify how the arguments to open-*-file are mapped to the kernel's interpretation of native paths, so something like this is up to the implementation.  However, the <https://bitbucket.org/cowan/r7rs-wg1-infra/src/default/PathnamesPython.md> pre-SRFI specifies a fully portable method of manipulating Posix and/or Windows pathnames.  It was easy enough to add a current-basepath parameter to use when joining paths.   I suppose a convenience path-join* procedure that uses (current-basepath) could be added, but (path-join (current-basepath) path) is easy enough.  Note that unlike in Python itself, the path objects are lists of strings rather than opaque records.

Speaking of pathname-manipulating APIs, have you seen MIT Scheme's pathname API?  It's well developed, and supports all kinds of filesystems going all the way back to the civilized days of versioned files in TOPS-20.