I like the idea of importing SRFIs by name. It's easier to read (srfi
lists-1) (or (srfi 1 lists) or whatever alternative named syntax is
adopted) than (srfi 1).
I think that every SRFI (even withdrawn) should have an identifier.
Withdrawn SRFIs are used by some implementations (CHICKEN uses SRFI-12
for instance).
The identifiers can also be used for more than just libraries. SRFIs
with only reader syntax can use an identifier to activate the reader
syntax with syntax similar to the proposed #!srfi-nnn. For example,
#!srfi-30 could also be #!srfi-external-form-30. The identifiers can
also be used in cond-expand or in (features).
I quickly went through the SRFI list and gave identifiers to SRFIs that
did not have one listed. I left the draft SRFIs empty. I welcome better
suggestions for names.
0 cond-expand
3 list-set
7 feature-cond
10 external-form
12 exception-handling
20 objects
22 scheme-scripts
24 local-define-syntax
30 multi-line-comments
32 sort
33 bitwise
36 io-conditions
40 streams
49 i-expr
50 mixing-scheme-and-c
52 extended-character-sets
53 computation-rules
55 require-extension
56 binary-io
58 arrays
62 s-expr-comments
65 define-immutable
68 comprehensive-io
70 numbers
72 hygienic-macros
73 exact-infinities
75 unicode-data
76 records
77 arithmetic
79 primitive-io
80 stream-io
81 port-io
82 stream-ports
83 library-syntax
84 universal-identifiers
85 equiv
88 keyword-objects
89 define*
90 hash-tables
91 ports
92 alambda
93 syntax-case
94 numbers
96 slib-prerequisites
97 srfi-libraries
100 define-lambda-object
101 immutable-pairs
102 procedures
103 library-files
104 library-files-utilities
105 curly-infix-expressions
106 sockets
107 xml-reader-syntax
108 named-quasi-literal-constructors
109 extended-string-quasi-literals
110 t-expressions
111 boxes
112 environment-enquiry
113 sets-and-bags
114 comparators
115 regex
116 immutable-pairs
118 strings
119 wisp
120 timers
121 generators
122 intervals-and-arrays
123 ref-and-set!
124 ephemerons
134 immutable-deques
135 immutable-texts
136 extensible-record-types
137 unique-types
138 compiling-scheme
139 syntax-parameters
140 immutable-strings
142 bitwise
144 fixnums
146 mapping
147 macro-transformers
148 eager-syntax-rules
149 syntax-rules
150 records
153 ordered-sets
154 dynamic-extents
155 promises
157 continuation-marks
159 combinator-formatting
160 number-vectors
161 ubox
162 comparators
163 array-literals
164 arrays
165 environment-monad
166 fmt
167 ordered-key-value-store
168 generic-tuple-store
169 underscores-in-numbers
170 posix
171 transducers
172 safer-subsets-of-r7rs
173 hooks
174 posix-timespecs
177 keyword-arguments
178 bitvectors
179 intervals-and-arrays
180 json
181 custom-ports
182 adbmal
183 fox
184 define-record-lambda
185 strings
186 transcoders
187 alambda
188 splicing
189 maybe-and-either
190 coroutine-generators
191 procedure-inspection
192 port-positioning
193 command-line
194 random
195 multiple-value-boxes
196 range-objects
197 pipelines
198 foreign-interface-status
199 errno
200 match
201 extensions
202 and-let*
203 picture
204 match
205 posix-terminal
206 auxillary-syntax-keywords
207 bytevectors
208 nan
209 enums
210 multiple-values
211 macros
212 aliases
213 identifier-properties
214 flexvectors
216 sicp-prerequisites
217 integer-sets
218 unicode-numerals
220 line-directives
221 generators-and-accumulators
222 compound-objects
224 integer-mappings
225 dictionaries
226 control-features
227 optional-arguments
229 tagged-procedures
230 atomics
231 intervals-and-arrays
232 currying
233 ini
234 topological-sort
235 combinators
237 records
240 records
243 unreadable-data
245 mixing-definitions-and-expressions
246 guardians
247 syntatic-monads
248 delimited-continuations
249 restarting-conditions
250
251 mixing-definitions-and-expressions
252 property-testing
253 data-type-checking
254
255 restarting-conditions
256 records
257
258 uninterned-symbols
260 generated-symbols
261
262
263