I've written preliminary versionf of all the R7RS libraries along with documentation and unit tests for most of the procedures I had to add (none for those that were re-exports/renames of existing procedures in Guile). Sorry for the bad timing (right before the 2.2 release). I was inspired by the work in the r7rs-wip branch (https://git.savannah.gnu.org/cgit/guile.git/log/?h=r7rs-wip). I figured it would be a lot of work to get that branch up to date since the last commit was in mid 2014, so I decided to write just the libraries themselves but not work on adding any of the R7RS syntax that hasn't already been added by others to the master branch. I wrote the libraries in pure scheme and did not modify any other scheme modules or C code to simplify inclusion (they won't have side effects on other modules or code). Note that I did grab Mark H Weaver's implementation of the load procedure/syntax. I didn't copy more code because I wanted to make adding this to Guile not dependent on any changes to the parts in C or other scheme modules (would have taken a long time to sort out which changes in r7rs-wip branch depend on such modifications and which do not). The tests for what I added check out and the documentation compiles to info and html (compiling texinfo to pdf is broken on my computer for all projects so I wasn't able to test that). Note, I was not able to make unit tests for load, include, and include-ci. file-error? and read-error? are not 100% reliable, and my implementation of the bytevector output ports is a bit of a hack job. Also, I did not update cond-expand or include the R7RS syntax for declaring libraries. Those things are still missing. Patch is rather large. Freja Nordsiek