Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.


Scheme Requests for Implementation (SRFIs) for R6RS

A basic framework for SRFIs made into R6RS libraries.  The libraries' names
conform to SRFI 97: SRFI Libraries.  There is a registry of available SRFIs (and
other platform features) which works alongside SRFI 0: Feature-Based Conditional
Expansion.  The porting done so far is mostly just taking the reference
implementations from and wrapping them in libraries and
tweaking the few things needed to make them work in R6RS libraries and with
implementations' functionality.  Supporting any R6RS implementation supporting
the *.IMPL.sls convention is easy.  The ports and the framework started as just
an exercise in using R6RS.  If you have other ideas, let's see if we can

These SRFIs are available:
  (srfi :0 cond-expand)
  (srfi :1 lists)
  (srfi :2 and-let*)
  (srfi :6 basic-string-ports)
  (srfi :8 receive)
  (srfi :9 records)
  (srfi :11 let-values)
  (srfi :13 strings)
  (srfi :14 char-sets)
  (srfi :16 case-lambda)
  (srfi :19 time)
  (srfi :23 error)
  (srfi :25 multi-dimensional-arrays)
  (srfi :26 cut)
  (srfi :27 random-bits)
  (srfi :31 rec)
  (srfi :37 args-fold)
  (srfi :38 with-shared-structure)
  (srfi :39 parameters)
  (srfi :41 streams)
  (srfi :42 eager-comprehensions)
  (srfi :43 vectors)
  (srfi :48 intermediate-format-strings)
  (srfi :61 cond)
  (srfi :64 testing)
  (srfi :67 compare-procedures)
  (srfi :69 basic-hash-tables)
  (srfi :78 lightweight-testing)
  (srfi :98 os-environment-variables)
  (srfi :99 records)

Currently supported systems are: Ikarus, Larceny, and Ypsilon.  PLT Scheme is
not supported because it has its own "srfi" directory which conflicts with
having another "srfi" directory.
For the latest development version, go to:

If you already have ported SRFIs to R6RS, we'd love to assimilate them.  You
can let us know by "asking a question" at the Scheme Libraries project page:

Bug Reporting:
Submit bug reports at:
Something went wrong with that request. Please try again.