~ chicken-core (chicken-5) /types.db
Trap1;;;; types.db - Type-information for core library functions -*- Scheme -*-
2;
3; Copyright (c) 2009-2022, The CHICKEN Team
4; All rights reserved.
5;
6; Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following
7; conditions are met:
8;
9; Redistributions of source code must retain the above copyright notice, this list of conditions and the following
10; disclaimer.
11; Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
12; disclaimer in the documentation and/or other materials provided with the distribution.
13; Neither the name of the author nor the names of its contributors may be used to endorse or promote
14; products derived from this software without specific prior written permission.
15;
16; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
17; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
18; AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
19; CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21; SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION HOWEVER CAUSED AND ON ANY
22; THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
23; OTHERWISE ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
24; POSSIBILITY OF SUCH DAMAGE.
25
26
27;;; Notes:
28;
29; - numeric types are disjoint, "fixnum" or "float" will not match "number" in the
30; rewrite rules
31; - for a description of the type-specifier syntax, see "scrutinizer.scm" (top of file)
32; - in templates, "#(INTEGER)" refers to the INTEGERth argument (starting from 1)
33; - in templates, "#(INTEGER ...)" refers to the INTEGERth argument (starting from 1) and
34; all remaining arguments
35; - in templates "#(SYMBOL)" binds X to a temporary gensym'd variable, further references
36; to "#(SYMBOL)" allow backreferences to this generated identifier
37; - "#(procedure PROPERTY ...)" may be used in place of "procedure", properties are:
38; #:clean - procedure does not modify state that might be used locally
39; #:enforce - when procedure returns, arguments are of correct type
40; #:foldable - procedure may be constant-folded
41; #:predicate TYPE - procedure is a predicate on TYPE (implies #:foldable)
42; #:pure - procedure has no side effects
43; - "#:clean" means: will not invoke procedures that modify local variables and
44; will not modify list or vector data held locally (note that I/O may invoke
45; port handlers)
46; - "#:pure" means: will not have side-effects; this is a bit of a lie,
47; since arity-mismatch will for example always have a side effect.
48; - "#:enforce" means: after return from this procedure, the argument is of
49; the correct type (it would have signalled an error otherwise)
50; - "#:foldable" means: when applied to constant arguments, direct calls
51; to this procedure may be evaluated at compile time.
52
53
54;; scheme
55
56(scheme#not (#(procedure #:pure #:foldable) scheme#not (*) boolean)
57 ((true) (false) (let ((#(tmp) #(1))) '#f))
58 ((false) (true) (let ((#(tmp) #(1))) '#t))
59 (((not boolean)) (false) (let ((#(tmp) #(1))) '#f)))
60
61(scheme#boolean? (#(procedure #:pure #:predicate boolean) scheme#boolean? (*) boolean))
62
63(scheme#eq? (#(procedure #:pure #:foldable) scheme#eq? (* *) boolean))
64
65(scheme#eqv? (#(procedure #:pure #:foldable) scheme#eqv? (* *) boolean)
66 (((or immediate symbol keyword) *) (scheme#eq? #(1) #(2)))
67 ((* (or immediate symbol keyword)) (scheme#eq? #(1) #(2)))
68 ((* *) (##core#inline "C_i_eqvp" #(1) #(2))))
69
70(scheme#equal? (#(procedure #:pure #:foldable) scheme#equal? (* *) boolean)
71 (((or immediate symbol keyword) *) (scheme#eq? #(1) #(2)))
72 ((* (or immediate symbol keyword)) (scheme#eq? #(1) #(2)))
73 ((number number) (##core#inline "C_i_eqvp" #(1) #(2))))
74
75(scheme#pair? (#(procedure #:pure #:predicate pair) scheme#pair? (*) boolean))
76
77(scheme#cons (forall (a b) (#(procedure #:pure) scheme#cons (a b) (pair a b))))
78
79(##sys#cons (forall (a b) (#(procedure #:pure) ##sys#cons (a b) (pair a b))))
80
81(scheme#car (forall (a) (#(procedure #:clean #:enforce #:foldable) scheme#car ((pair a *)) a)) ((pair) (##core#inline "C_u_i_car" #(1))))
82(scheme#cdr (forall (a) (#(procedure #:clean #:enforce #:foldable) scheme#cdr ((pair * a)) a)) ((pair) (##core#inline "C_u_i_cdr" #(1))))
83
84(scheme#caar (forall (a) (#(procedure #:clean #:enforce #:foldable) scheme#caar ((pair (pair a *) *)) a))
85 (((pair (pair * *) *)) (##core#inline "C_u_i_car" (##core#inline "C_u_i_car" #(1)))))
86(scheme#cadr (forall (a) (#(procedure #:clean #:enforce #:foldable) scheme#cadr ((pair * (pair a *))) a))
87 (((pair * (pair * *))) (##core#inline "C_u_i_car" (##core#inline "C_u_i_cdr" #(1)))))
88(scheme#cdar (forall (a) (#(procedure #:clean #:enforce #:foldable) scheme#cdar ((pair (pair * a) *)) a))
89 (((pair (pair * *) *)) (##core#inline "C_u_i_cdr" (##core#inline "C_u_i_car" #(1)))))
90(scheme#cddr (forall (a) (#(procedure #:clean #:enforce #:foldable) scheme#cddr ((pair * (pair * a))) a))
91 (((pair * (pair * *))) (##core#inline "C_u_i_cdr" (##core#inline "C_u_i_cdr" #(1)))))
92
93(scheme#caaar (forall (a) (#(procedure #:clean #:enforce #:foldable) scheme#caaar ((pair (pair (pair a *) *) *)) a))
94 (((pair (pair (pair * *) *) *))
95 (##core#inline "C_u_i_car"
96 (##core#inline "C_u_i_car" (##core#inline "C_u_i_car" #(1))))))
97
98(scheme#caadr (forall (a) (#(procedure #:clean #:enforce #:foldable) scheme#caadr ((pair * (pair (pair a *) *))) a))
99 (((pair * (pair (pair * *) *)))
100 (##core#inline "C_u_i_car"
101 (##core#inline "C_u_i_car" (##core#inline "C_u_i_cdr" #(1))))))
102
103(scheme#cadar (forall (a) (#(procedure #:clean #:enforce #:foldable) scheme#cadar ((pair (pair * (pair a *)) *)) a))
104 (((pair (pair * (pair * *)) *))
105 (##core#inline "C_u_i_car"
106 (##core#inline "C_u_i_cdr" (##core#inline "C_u_i_car" #(1))))))
107
108(scheme#caddr (forall (a) (#(procedure #:clean #:enforce #:foldable) scheme#caddr ((pair * (pair * (pair a *)))) a))
109 (((pair * (pair * (pair * *))))
110 (##core#inline "C_u_i_car"
111 (##core#inline "C_u_i_cdr" (##core#inline "C_u_i_cdr" #(1))))))
112
113(scheme#cdaar (forall (a) (#(procedure #:clean #:enforce #:foldable) scheme#cdaar ((pair (pair (pair * a) *) *)) a))
114 (((pair (pair (pair * *) *) *))
115 (##core#inline "C_u_i_cdr"
116 (##core#inline "C_u_i_car" (##core#inline "C_u_i_car" #(1))))))
117
118(scheme#cdadr (forall (a) (#(procedure #:clean #:enforce #:foldable) scheme#cdadr ((pair * (pair (pair * a) *))) a))
119 (((pair * (pair (pair * *) *)))
120 (##core#inline "C_u_i_cdr"
121 (##core#inline "C_u_i_car" (##core#inline "C_u_i_cdr" #(1))))))
122
123(scheme#cddar (forall (a) (#(procedure #:clean #:enforce #:foldable) scheme#cddar ((pair (pair * (pair * a)) *)) a))
124 (((pair (pair * (pair * *)) *))
125 (##core#inline "C_u_i_cdr"
126 (##core#inline "C_u_i_cdr" (##core#inline "C_u_i_car" #(1))))))
127
128(scheme#cdddr (forall (a) (#(procedure #:clean #:enforce #:foldable) scheme#cdddr ((pair * (pair * (pair * a)))) a))
129 (((pair * (pair * (pair * *))))
130 (##core#inline "C_u_i_cdr"
131 (##core#inline "C_u_i_cdr" (##core#inline "C_u_i_cdr" #(1))))))
132
133(scheme#caaaar (forall (a) (#(procedure #:clean #:enforce #:foldable) scheme#caaaar ((pair (pair (pair (pair a *) *) *) *)) a)))
134(scheme#caaadr (forall (a) (#(procedure #:clean #:enforce #:foldable) scheme#caaadr ((pair * (pair (pair (pair a *) *) *))) a)))
135(scheme#caadar (forall (a) (#(procedure #:clean #:enforce #:foldable) scheme#caadar ((pair (pair * (pair (pair a *) *)) *)) a)))
136(scheme#caaddr (forall (a) (#(procedure #:clean #:enforce #:foldable) scheme#caaddr ((pair * (pair * (pair (pair a *) *)))) a)))
137(scheme#cadaar (forall (a) (#(procedure #:clean #:enforce #:foldable) scheme#cadaar ((pair (pair (pair * (pair a *)) *) *)) a)))
138(scheme#cadadr (forall (a) (#(procedure #:clean #:enforce #:foldable) scheme#cadadr ((pair * (pair (pair * (pair a *)) *))) a)))
139(scheme#caddar (forall (a) (#(procedure #:clean #:enforce #:foldable) scheme#caddar ((pair (pair * (pair * (pair a *))) *)) a)))
140(scheme#cadddr (forall (a) (#(procedure #:clean #:enforce #:foldable) scheme#cadddr ((pair * (pair * (pair * (pair a *))))) a)))
141(scheme#cdaaar (forall (a) (#(procedure #:clean #:enforce #:foldable) scheme#cdaaar ((pair (pair (pair (pair * a) *) *) *)) a)))
142(scheme#cdaadr (forall (a) (#(procedure #:clean #:enforce #:foldable) scheme#cdaadr ((pair * (pair (pair (pair * a) *) *))) a)))
143(scheme#cdadar (forall (a) (#(procedure #:clean #:enforce #:foldable) scheme#cdadar ((pair (pair * (pair (pair * a) *)) *)) a)))
144(scheme#cdaddr (forall (a) (#(procedure #:clean #:enforce #:foldable) scheme#cdaddr ((pair * (pair * (pair (pair * a) *)))) a)))
145(scheme#cddaar (forall (a) (#(procedure #:clean #:enforce #:foldable) scheme#cddaar ((pair (pair (pair * (pair * a)) *) *)) a)))
146(scheme#cddadr (forall (a) (#(procedure #:clean #:enforce #:foldable) scheme#cddadr ((pair * (pair (pair * (pair * a)) *))) a)))
147(scheme#cdddar (forall (a) (#(procedure #:clean #:enforce #:foldable) scheme#cdddar ((pair (pair * (pair * (pair * a))) *)) a)))
148(scheme#cddddr (forall (a) (#(procedure #:clean #:enforce #:foldable) scheme#cddddr ((pair * (pair * (pair * (pair * a))))) a)))
149
150(scheme#set-car! (#(procedure #:enforce) scheme#set-car! (pair *) undefined)
151 ((pair (or fixnum char boolean eof bwp null undefined)) (##sys#setislot #(1) '0 #(2)))
152 ((pair *) (##sys#setslot #(1) '0 #(2))))
153
154(scheme#set-cdr! (#(procedure #:enforce) scheme#set-cdr! (pair *) undefined)
155 ((pair (or fixnum char boolean eof bwp null undefined)) (##sys#setislot #(1) '1 #(2)))
156 ((pair *) (##sys#setslot #(1) '1 #(2))))
157
158(scheme#null? (#(procedure #:pure #:predicate null) scheme#null? (*) boolean))
159(scheme#list? (#(procedure #:pure #:predicate list) scheme#list? (*) boolean))
160
161;; special cased (see scrutinizer.scm)
162(scheme#list (#(procedure #:pure) scheme#list (#!rest) list))
163(##sys#list (#(procedure #:pure) ##sys#list (#!rest) list))
164
165(scheme#length (#(procedure #:clean #:enforce #:foldable) scheme#length (list) fixnum) ; may loop
166 ((null) (let ((#(tmp) #(1))) '0))
167 ((list) (##core#inline "C_u_i_length" #(1))))
168
169(##sys#length (#(procedure #:clean #:enforce #:foldable) ##sys#length (list) fixnum)
170 ((null) (let ((#(tmp) #(1))) '0))
171 ((list) (##core#inline "C_u_i_length" #(1))))
172
173;; these are special cased (see scrutinizer.scm)
174(scheme#list-tail (forall (a) (#(procedure #:clean #:enforce #:foldable) scheme#list-tail ((list-of a) fixnum) (list-of a))))
175(scheme#list-ref (forall (a) (#(procedure #:clean #:enforce #:foldable) scheme#list-ref ((list-of a) fixnum) a)))
176
177;; special cased (see scrutinizer.scm)
178(scheme#append (#(procedure #:clean) scheme#append (#!rest *) *)) ; sic
179(##sys#append (#(procedure #:clean) ##sys#append (#!rest *) *))
180
181;; special cased (see scrutinizer.scm)
182(scheme#reverse (forall (a) (#(procedure #:clean #:enforce) scheme#reverse ((list-of a)) (list-of a)))
183 ((null) (null) (let ((#(tmp) #(1))) '())))
184
185(scheme#memq (forall (a b) (#(procedure #:clean #:foldable) scheme#memq (a (list-of b))
186 (or false (pair a (list-of b)))))
187 ((* null) (let ((#(tmp) #(1))) '#f))
188 ((* list) (##core#inline "C_u_i_memq" #(1) #(2))))
189
190(scheme#memv (forall (a b) (#(procedure #:clean #:foldable) scheme#memv (a (list-of b))
191 (or false (pair a (list-of b)))))
192 ((* null) (let ((#(tmp) #(1))) '#f))
193 (((or symbol keyword procedure immediate) list)
194 (##core#inline "C_u_i_memq" #(1) #(2))))
195
196(scheme#member (forall (a b) (#(procedure #:clean #:foldable) scheme#member (a (list-of b))
197 (or false (pair a (list-of b)))))
198 ((* null) (let ((#(tmp) #(1))) '#f))
199 (((or symbol keyword procedure immediate) list)
200 (##core#inline "C_u_i_memq" #(1) #(2)))
201 ((* (list-of (or symbol keyword procedure immediate)))
202 (##core#inline "C_u_i_memq" #(1) #(2))))
203
204(scheme#assq (forall (a b c) (#(procedure #:clean #:foldable) scheme#assq
205 (a (list-of (pair b c)))
206 (or false (pair a c))))
207 ((* null) (let ((#(tmp) #(1))) '#f))
208 ((* (list-of pair)) (##core#inline "C_u_i_assq" #(1) #(2))))
209
210(scheme#assv (forall (a b c) (#(procedure #:clean #:foldable) scheme#assv
211 (a (list-of (pair b c)))
212 (or false (pair a c))))
213 ((* null) (let ((#(tmp) #(1))) '#f))
214 (((or symbol keyword immediate procedure) (list-of pair))
215 (##core#inline "C_u_i_assq" #(1) #(2)))
216 ((* (list-of (pair (or symbol keyword procedure immediate) *)))
217 (##core#inline "C_u_i_assq" #(1) #(2))))
218
219(scheme#assoc (forall (a b c) (#(procedure #:clean #:foldable) scheme#assoc
220 (a (list-of (pair b c)))
221 (or false (pair a c))))
222 ((* null) (let ((#(tmp) #(1))) '#f))
223 (((or symbol keyword procedure immediate) (list-of pair))
224 (##core#inline "C_u_i_assq" #(1) #(2)))
225 ((* (list-of (pair (or symbol keyword procedure immediate) *)))
226 (##core#inline "C_u_i_assq" #(1) #(2))))
227
228(scheme#symbol? (#(procedure #:pure #:predicate symbol) scheme#symbol? (*) boolean))
229
230(scheme#symbol->string (#(procedure #:clean #:enforce) scheme#symbol->string (symbol) string))
231(scheme#string->symbol (#(procedure #:clean #:enforce #:foldable) scheme#string->symbol (string) symbol))
232
233(scheme#number? (#(procedure #:pure #:predicate number) scheme#number? (*) boolean))
234
235;;XXX predicate?
236(scheme#integer? (#(procedure #:pure #:foldable) scheme#integer? (*) boolean)
237 ((integer) (let ((#(tmp) #(1))) '#t))
238 ((float) (##core#inline "C_u_i_fpintegerp" #(1)))
239 ((*) (##core#inline "C_i_integerp" #(1))))
240
241(scheme#real? (#(procedure #:pure #:foldable) scheme#real? (*) boolean)
242 (((or fixnum float bignum ratnum)) (let ((#(tmp) #(1))) '#t))
243 ((cplxnum) (let ((#(tmp) #(1))) '#f))
244 ((*) (##core#inline "C_i_realp" #(1))))
245(scheme#complex? (#(procedure #:pure #:predicate number) scheme#complex? (*) boolean))
246(scheme#exact? (#(procedure #:clean #:enforce #:foldable) scheme#exact? (number) boolean)
247 (((or integer ratnum)) (let ((#(tmp) #(1))) '#t))
248 ((float) (let ((#(tmp) #(1))) '#f)))
249(scheme#inexact? (#(procedure #:clean #:enforce #:foldable) scheme#inexact? (number) boolean)
250 (((or integer ratnum)) (let ((#(tmp) #(1))) '#f))
251 ((float) (let ((#(tmp) #(1))) '#t)))
252
253;;XXX predicate?
254(scheme#rational? (#(procedure #:pure #:foldable) scheme#rational? (*) boolean)
255 (((or fixnum bignum ratnum)) (let ((#(tmp) #(1))) '#t))
256 ((cplxnum) (let ((#(tmp) #(1))) '#f))
257 ((float) (##core#inline "C_u_i_flonum_finitep" #(1)))
258 ((*) (##core#inline "C_i_rationalp" #(1))))
259
260(scheme#zero? (#(procedure #:clean #:enforce #:foldable) scheme#zero? (number) boolean)
261 ((integer) (scheme#eq? #(1) '0))
262 (((or cplxnum ratnum)) (let ((#(tmp) #(1))) '#f))
263 ((number) (##core#inline "C_u_i_zerop2" #(1)))
264 ((*) (##core#inline "C_i_zerop" #(1))))
265
266(scheme#odd? (#(procedure #:clean #:enforce #:foldable) scheme#odd? (number) boolean)
267 ((fixnum) (##core#inline "C_i_fixnumoddp" #(1)))
268 ((integer) (##core#inline "C_i_integer_oddp" #(1)))
269 ((*) (##core#inline "C_i_oddp" #(1))))
270(scheme#even? (#(procedure #:clean #:enforce #:foldable) scheme#even? (number) boolean)
271 ((fixnum) (##core#inline "C_i_fixnumevenp" #(1)))
272 ((integer) (##core#inline "C_i_integer_evenp" #(1)))
273 ((*) (##core#inline "C_i_evenp" #(1))))
274
275(scheme#positive? (#(procedure #:clean #:enforce #:foldable) scheme#positive? (number) boolean)
276 ((fixnum) (##core#inline "C_i_fixnum_positivep" #(1)))
277 ((integer) (##core#inline "C_i_integer_positivep" #(1)))
278 ((*) (##core#inline "C_i_positivep" #(1))))
279
280(scheme#negative? (#(procedure #:clean #:enforce #:foldable) scheme#negative? (number) boolean)
281 ((fixnum) (##core#inline "C_i_fixnum_negativep" #(1)))
282 ((integer) (##core#inline "C_i_integer_negativep" #(1)))
283 ((*) (##core#inline "C_i_negativep" #(1))))
284
285(scheme#max (#(procedure #:clean #:enforce #:foldable) scheme#max (#!rest number) number)
286 ((fixnum fixnum) (fixnum) (chicken.fixnum#fxmax #(1) #(2)))
287 ((float float) (float) (##core#inline "C_i_flonum_max" #(1) #(2))))
288
289(scheme#min (#(procedure #:clean #:enforce #:foldable) scheme#min (#!rest number) number)
290 ((fixnum fixnum) (fixnum) (chicken.fixnum#fxmin #(1) #(2)))
291 ((float float) (float) (##core#inline "C_i_flonum_min" #(1) #(2))))
292
293(scheme#+ (#(procedure #:clean #:enforce #:foldable) scheme#+ (#!rest number) number)
294 (() (fixnum) '0)
295 ((fixnum) (fixnum) #(1))
296 ((float) (float) #(1))
297 ((integer) (integer) #(1))
298 ((ratnum) (ratnum) #(1))
299 ((cplxnum) (cplxnum) #(1))
300 ((number) (number) #(1))
301 ((float fixnum) (float)
302 (##core#inline_allocate
303 ("C_a_i_flonum_plus" 4)
304 #(1)
305 (##core#inline_allocate ("C_a_i_fix_to_flo" 4) #(2))))
306 ((fixnum float)
307 (float)
308 (##core#inline_allocate
309 ("C_a_i_flonum_plus" 4)
310 (##core#inline_allocate ("C_a_i_fix_to_flo" 4) #(1))
311 #(2)))
312 ((float float) (float)
313 (##core#inline_allocate ("C_a_i_flonum_plus" 4) #(1) #(2)))
314 ((fixnum fixnum) (integer)
315 (##core#inline_allocate ("C_a_i_fixnum_plus" 5) #(1) #(2)))
316 ((integer integer) (integer)
317 (##core#inline_allocate ("C_s_a_u_i_integer_plus" 5) #(1) #(2))))
318
319(scheme#- (#(procedure #:clean #:enforce #:foldable) scheme#- (number #!rest number) number)
320 ((fixnum) (integer) (##core#inline_allocate ("C_a_i_fixnum_negate" 5) #(1)))
321 ((integer) (integer)
322 (##core#inline_allocate ("C_s_a_u_i_integer_negate" 5) #(1)))
323 ((float) (float) (##core#inline_allocate ("C_a_i_flonum_negate" 4) #(1)))
324 ((*) (*) (##core#inline_allocate ("C_s_a_i_negate" 29) #(1)))
325 ((float fixnum) (float)
326 (##core#inline_allocate
327 ("C_a_i_flonum_difference" 4)
328 #(1)
329 (##core#inline_allocate ("C_a_i_fix_to_flo" 4) #(2))))
330 ((fixnum float) (float)
331 (##core#inline_allocate
332 ("C_a_i_flonum_difference" 4)
333 (##core#inline_allocate ("C_a_i_fix_to_flo" 4) #(1))
334 #(2)))
335 ((float float) (float)
336 (##core#inline_allocate ("C_a_i_flonum_difference" 4) #(1) #(2)))
337 ((fixnum fixnum) (integer)
338 (##core#inline_allocate ("C_a_i_fixnum_difference" 5) #(1) #(2)))
339 ((integer integer) (integer)
340 (##core#inline_allocate ("C_s_a_u_i_integer_minus" 5) #(1) #(2))))
341
342(scheme#* (#(procedure #:clean #:enforce #:foldable) scheme#* (#!rest number) number)
343 (() (fixnum) '1)
344 ((fixnum) (fixnum) #(1))
345 ((float) (float) #(1))
346 ((bignum) (bignum) #(1))
347 ((integer) (integer) #(1))
348 ((ratnum) (ratnum) #(1))
349 ((cplxnum) (cplxnum) #(1))
350 ((number) (number) #(1))
351 ((float fixnum) (float)
352 (##core#inline_allocate
353 ("C_a_i_flonum_times" 4)
354 #(1)
355 (##core#inline_allocate ("C_a_i_fix_to_flo" 4) #(2))))
356 ((fixnum float) (float)
357 (##core#inline_allocate
358 ("C_a_i_flonum_times" 4)
359 (##core#inline_allocate ("C_a_i_fix_to_flo" 4) #(1))
360 #(2)))
361 ((float float) (float)
362 (##core#inline_allocate ("C_a_i_flonum_times" 4) #(1) #(2)))
363 ((fixnum fixnum) (integer)
364 (##core#inline_allocate ("C_a_i_fixnum_times" 5) #(1) #(2)))
365 ((integer integer) (integer)
366 (##core#inline_allocate ("C_s_a_u_i_integer_times" 5) #(1) #(2))))
367
368(scheme#/ (#(procedure #:clean #:enforce #:foldable) scheme#/ (number #!rest number) number)
369 ((float fixnum) (float)
370 ;; This is the only checked one because the divisor is an exact value
371 (##core#inline_allocate
372 ("C_a_i_flonum_quotient_checked" 4)
373 #(1)
374 (##core#inline_allocate ("C_a_i_fix_to_flo" 4) #(2))))
375 ((fixnum float) (float)
376 (##core#inline_allocate
377 ("C_a_i_flonum_quotient" 4)
378 (##core#inline_allocate ("C_a_i_fix_to_flo" 4) #(1))
379 #(2)))
380 ((float float) (float)
381 (##core#inline_allocate ("C_a_i_flonum_quotient" 4) #(1) #(2)))
382 ((integer integer) ((or integer ratnum))
383 (##sys#/-2 #(1) #(2)))
384 ((* *) (number)
385 (##sys#/-2 #(1) #(2))))
386
387(scheme#= (#(procedure #:clean #:enforce #:foldable) scheme#= (#!rest number) boolean)
388 (() '#t)
389 ((number) (let ((#(tmp) #(1))) '#t))
390 ((fixnum fixnum) (scheme#eq? #(1) #(2)))
391 ((float float) (##core#inline "C_flonum_equalp" #(1) #(2)))
392 ((integer integer) (##core#inline "C_i_integer_equalp" #(1) #(2))))
393
394(scheme#> (#(procedure #:clean #:enforce #:foldable) scheme#> (#!rest number) boolean)
395 (() '#t)
396 ((number) (let ((#(tmp) #(1))) '#t))
397 ((fixnum fixnum) (chicken.fixnum#fx> #(1) #(2)))
398 ((float float) (##core#inline "C_flonum_greaterp" #(1) #(2)))
399 ((integer integer) (##core#inline "C_i_integer_greaterp" #(1) #(2))))
400
401(scheme#< (#(procedure #:clean #:enforce #:foldable) scheme#< (#!rest number) boolean)
402 (() '#t)
403 ((number) (let ((#(tmp) #(1))) '#t))
404 ((fixnum fixnum) (chicken.fixnum#fx< #(1) #(2)))
405 ((integer integer) (##core#inline "C_i_integer_lessp" #(1) #(2)))
406 ((float float) (##core#inline "C_flonum_lessp" #(1) #(2))))
407
408(scheme#>= (#(procedure #:clean #:enforce #:foldable) scheme#>= (#!rest number) boolean)
409 (() '#t)
410 ((number) (let ((#(tmp) #(1))) '#t))
411 ((fixnum fixnum) (chicken.fixnum#fx>= #(1) #(2)))
412 ((integer integer) (##core#inline "C_i_integer_greater_or_equalp" #(1) #(2)))
413 ((float float) (##core#inline "C_flonum_greater_or_equal_p" #(1) #(2))))
414
415(scheme#<= (#(procedure #:clean #:enforce #:foldable) scheme#<= (#!rest number) boolean)
416 (() '#t)
417 ((number) (let ((#(tmp) #(1))) '#t))
418 ((fixnum fixnum) (chicken.fixnum#fx<= #(1) #(2)))
419 ((integer integer) (##core#inline "C_i_integer_less_or_equalp" #(1) #(2)))
420 ((float float) (##core#inline "C_flonum_less_or_equal_p" #(1) #(2))))
421
422(scheme#quotient (#(procedure #:clean #:enforce #:foldable) scheme#quotient ((or integer float) (or integer float)) (or integer float))
423 ;;XXX flonum/mixed case
424 ((float float) (float)
425 (##core#inline_allocate
426 ("C_a_i_flonum_actual_quotient_checked" 4) #(1) #(2)))
427 ((fixnum fixnum) (integer)
428 (##core#inline_allocate ("C_a_i_fixnum_quotient_checked" 5)
429 #(1) #(2)))
430 ((integer integer) (integer)
431 (##core#inline_allocate ("C_s_a_u_i_integer_quotient" 5) #(1) #(2))))
432
433(scheme#remainder (#(procedure #:clean #:enforce #:foldable) scheme#remainder ((or integer float) (or integer float)) (or integer float))
434 ((float float) (float)
435 (##core#inline_allocate
436 ("C_a_i_flonum_remainder_checked" 4) #(1) #(2)))
437 ;;XXX flonum/mixed case
438 ((fixnum fixnum) (fixnum)
439 (##core#inline "C_i_fixnum_remainder_checked" #(1) #(2)))
440 ((integer integer) (integer)
441 (##core#inline_allocate ("C_s_a_u_i_integer_remainder" 5) #(1) #(2))))
442
443(scheme#modulo (#(procedure #:clean #:enforce #:foldable) scheme#modulo ((or integer float) (or integer float)) (or integer float))
444 ((float float) (float)
445 (##core#inline_allocate
446 ("C_a_i_flonum_modulo_checked" 4) #(1) #(2)))
447 ;;XXX flonum/mixed case
448 ((fixnum fixnum) (fixnum)
449 (##core#inline "C_fixnum_modulo" #(1) #(2)))
450 ((integer integer) (integer)
451 (##core#inline_allocate ("C_s_a_u_i_integer_modulo" 5) #(1) #(2))))
452
453(scheme#gcd (#(procedure #:clean #:enforce #:foldable) scheme#gcd (#!rest (or integer float)) (or integer float))
454 (() '0)
455 ((fixnum fixnum) (fixnum) (chicken.fixnum#fxgcd #(1) #(2)))
456 ((float float) (float) (chicken.flonum#fpgcd #(1) #(2)))
457 ((integer integer) (integer)
458 (##core#inline_allocate ("C_s_a_u_i_integer_gcd" 5) #(1) #(2)))
459 ((* *) (##sys#gcd #(1) #(2))))
460
461(##sys#gcd (#(procedure #:clean #:enforce #:foldable) ##sys#gcd (number number) number))
462
463(scheme#lcm (#(procedure #:clean #:enforce #:foldable) scheme#lcm (#!rest number) number)
464 (() '1)
465 ((* *) (##sys#lcm #(1) #(2))))
466
467(##sys#lcm (#(procedure #:clean #:enforce #:foldable) ##sys#lcm (number number) number))
468
469(scheme#abs (#(procedure #:clean #:enforce #:foldable) scheme#abs (number) number)
470 ((fixnum) (integer) (##core#inline_allocate ("C_a_i_fixnum_abs" 5) #(1)))
471 ((float) (float) (##core#inline_allocate ("C_a_i_flonum_abs" 4) #(1)))
472 ((integer) (integer)
473 (##core#inline_allocate ("C_s_a_u_i_integer_abs" 5) #(1)))
474 ((*) (*)
475 (##core#inline_allocate ("C_s_a_i_abs" 7) #(1))))
476
477(scheme#floor (#(procedure #:clean #:enforce #:foldable) scheme#floor ((or integer ratnum float)) (or integer ratnum float))
478 ((fixnum) (fixnum) #(1))
479 ((integer) (integer) #(1))
480 ((float) (float)
481 (##core#inline_allocate ("C_a_i_flonum_floor" 4) #(1))))
482
483(scheme#ceiling (#(procedure #:clean #:enforce #:foldable) scheme#ceiling ((or integer ratnum float)) (or integer ratnum float))
484 ((fixnum) (fixnum) #(1))
485 ((integer) (integer) #(1))
486 ((float) (float)
487 (##core#inline_allocate ("C_a_i_flonum_ceiling" 4) #(1))))
488
489(scheme#truncate (#(procedure #:clean #:enforce #:foldable) scheme#truncate ((or integer ratnum float)) (or integer ratnum float))
490 ((fixnum) (fixnum) #(1))
491 ((integer) (integer) #(1))
492 ((float) (float)
493 (##core#inline_allocate ("C_a_i_flonum_truncate" 4) #(1))))
494
495(scheme#round (#(procedure #:clean #:enforce #:foldable) scheme#round ((or integer ratnum float)) (or integer ratnum float))
496 ((fixnum) (fixnum) #(1))
497 ((integer) (integer) #(1))
498 ((float) (float)
499 (##core#inline_allocate ("C_a_i_flonum_round_proper" 4) #(1))))
500
501(scheme#exact->inexact (#(procedure #:clean #:enforce #:foldable) scheme#exact->inexact (number) (or float cplxnum))
502 ((float) (float) #(1))
503 ((fixnum) (float) (##core#inline_allocate ("C_a_i_fix_to_flo" 4) #(1)))
504 ((number) (##core#inline_allocate ("C_a_i_exact_to_inexact" 11) #(1))))
505
506(scheme#inexact->exact (#(procedure #:clean #:enforce #:foldable) scheme#inexact->exact (number) (or integer ratnum))
507 ((fixnum) (fixnum) #(1))
508 ((integer) (integer) #(1))
509 ((ratnum) (ratnum) #(1))
510 (((or integer ratnum)) #(1)))
511
512(scheme#exp (#(procedure #:clean #:enforce #:foldable) scheme#exp (number) (or float cplxnum))
513 ((float) (float) (##core#inline_allocate ("C_a_i_flonum_exp" 4) #(1))))
514
515(scheme#log (#(procedure #:clean #:enforce #:foldable) scheme#log (number #!optional number) (or float cplxnum))
516 ;; Unfortunately this doesn't work when the argument is negative
517 ;;((float) (float) (##core#inline_allocate ("C_a_i_flonum_log" 4) #(1)))
518 ((*) (##sys#log-1 #(1)))
519 ((* *) (##sys#/-2 (##sys#log-1 #(1)) (##sys#log-1 #(2)))))
520
521(scheme#expt (#(procedure #:clean #:enforce #:foldable) scheme#expt (number number) number)
522 ;; This breaks in some extreme edge cases... Worth disabling?
523 #;((float float) (float)
524 (##core#inline_allocate ("C_a_i_flonum_expt" 4) #(1) #(2)))
525 #;((float fixnum) (float)
526 (##core#inline_allocate ("C_a_i_flonum_expt" 4)
527 #(1)
528 (##core#inline_allocate ("C_a_i_fix_to_flo" 4) #(2))))
529 #;((fixnum float) (float)
530 (##core#inline_allocate ("C_a_i_flonum_expt" 4)
531 (##core#inline_allocate ("C_a_i_fix_to_flo" 4) #(1))
532 #(2))))
533
534(scheme#sqrt (#(procedure #:clean #:enforce #:foldable) scheme#sqrt (number) number)
535 ;; Unfortunately this doesn't work when the argument is negative
536 #;((float) (float) (##core#inline_allocate ("C_a_i_flonum_sqrt" 4) #(1))))
537
538(scheme#sin (#(procedure #:clean #:enforce #:foldable) scheme#sin (number) (or float cplxnum))
539 ((float) (float) (##core#inline_allocate ("C_a_i_flonum_sin" 4) #(1))))
540
541(scheme#cos (#(procedure #:clean #:enforce #:foldable) scheme#cos (number) (or float cplxnum))
542 ((float) (float) (##core#inline_allocate ("C_a_i_flonum_cos" 4) #(1))))
543
544(scheme#tan (#(procedure #:clean #:enforce #:foldable) scheme#tan (number) (or float cplxnum))
545 ((float) (float) (##core#inline_allocate ("C_a_i_flonum_tan" 4) #(1))))
546
547(scheme#asin (#(procedure #:clean #:enforce #:foldable) scheme#asin (number) (or float cplxnum))
548 ;; Unfortunately this doesn't work when the number is > 1.0 (returns compnum)
549 #;((float) (float) (##core#inline_allocate ("C_a_i_flonum_acos" 4) #(1))))
550
551(scheme#acos (#(procedure #:clean #:enforce #:foldable) scheme#acos (number) (or float cplxnum))
552 ;; Unfortunately this doesn't work when the number is > 1.0 (returns compnum)
553 #;((float) (float) (##core#inline_allocate ("C_a_i_flonum_acos" 4) #(1))))
554
555(scheme#atan (#(procedure #:clean #:enforce #:foldable) scheme#atan (number #!optional number) (or float cplxnum))
556 ((float) (float) (##core#inline_allocate ("C_a_i_flonum_atan" 4) #(1)))
557 ((float float) (float)
558 (##core#inline_allocate ("C_a_i_flonum_atan2" 4) #(1) #(2))))
559
560(scheme#number->string (#(procedure #:clean #:enforce) scheme#number->string (number #!optional fixnum) string)
561 ((fixnum fixnum) (##sys#fixnum->string #(1) #(2)))
562 ((fixnum) (##sys#fixnum->string #(1) '10))
563 ((integer fixnum) (##sys#integer->string #(1) #(2)))
564 ((integer) (##sys#integer->string #(1) '10))
565 ((float fixnum) (##sys#flonum->string #(1) #(2)))
566 ((float) (##sys#flonum->string #(1) '10))
567 ((* *) (##sys#number->string #(1) #(2)))
568 ((*) (##sys#number->string #(1) '10)))
569
570(##sys#fixnum->string (#(procedure #:clean #:enforce) ##sys#fixnum->string (fixnum fixnum) string))
571(##sys#integer->string (#(procedure #:clean #:enforce) ##sys#integer->string (integer fixnum) string))
572(##sys#flonum->string (#(procedure #:clean #:enforce) ##sys#flonum->string (float fixnum) string))
573
574(scheme#string->number (#(procedure #:clean #:enforce #:foldable) scheme#string->number (string #!optional fixnum)
575 (or number false)))
576
577(scheme#char? (#(procedure #:pure #:predicate char) scheme#char? (*) boolean))
578
579;; safe rewrites are already done by the optimizer
580(scheme#char=? (#(procedure #:clean #:enforce #:foldable) scheme#char=? (char char) boolean)
581 ((char char) (##core#inline "C_u_i_char_equalp" #(1) #(2))))
582(scheme#char>? (#(procedure #:clean #:enforce #:foldable) scheme#char>? (char char) boolean)
583 ((char char) (##core#inline "C_u_i_char_greaterp" #(1) #(2))))
584(scheme#char<? (#(procedure #:clean #:enforce #:foldable) scheme#char<? (char char) boolean)
585 ((char char) (##core#inline "C_u_i_char_lessp" #(1) #(2))))
586(scheme#char>=? (#(procedure #:clean #:enforce #:foldable) scheme#char>=? (char char) boolean)
587 ((char char) (##core#inline "C_u_i_char_greater_or_equal_p" #(1) #(2))))
588(scheme#char<=? (#(procedure #:clean #:enforce #:foldable) scheme#char<=? (char char) boolean)
589 ((char char) (##core#inline "C_u_i_char_less_or_equal_p" #(1) #(2))))
590
591(scheme#char-ci=? (#(procedure #:clean #:enforce #:foldable) scheme#char-ci=? (char char) boolean))
592(scheme#char-ci<? (#(procedure #:clean #:enforce #:foldable) scheme#char-ci<? (char char) boolean))
593(scheme#char-ci>? (#(procedure #:clean #:enforce #:foldable) scheme#char-ci>? (char char) boolean))
594(scheme#char-ci>=? (#(procedure #:clean #:enforce #:foldable) scheme#char-ci>=? (char char) boolean))
595(scheme#char-ci<=? (#(procedure #:clean #:enforce #:foldable) scheme#char-ci<=? (char char) boolean))
596(scheme#char-alphabetic? (#(procedure #:clean #:enforce #:foldable) scheme#char-alphabetic? (char) boolean))
597(scheme#char-whitespace? (#(procedure #:clean #:enforce #:foldable) scheme#char-whitespace? (char) boolean))
598(scheme#char-numeric? (#(procedure #:clean #:enforce #:foldable) scheme#char-numeric? (char) boolean))
599(scheme#char-upper-case? (#(procedure #:clean #:enforce #:foldable) scheme#char-upper-case? (char) boolean))
600(scheme#char-lower-case? (#(procedure #:clean #:enforce #:foldable) scheme#char-lower-case? (char) boolean))
601(scheme#char-upcase (#(procedure #:clean #:enforce #:foldable) scheme#char-upcase (char) char))
602(scheme#char-downcase (#(procedure #:clean #:enforce #:foldable) scheme#char-downcase (char) char))
603
604(scheme#char->integer (#(procedure #:clean #:enforce #:foldable) scheme#char->integer (char) fixnum))
605(scheme#integer->char (#(procedure #:clean #:enforce #:foldable) scheme#integer->char (fixnum) char))
606
607(scheme#string? (#(procedure #:pure #:predicate string) scheme#string? (*) boolean))
608
609(scheme#string=? (#(procedure #:clean #:enforce #:foldable) scheme#string=? (string string) boolean)
610 ((string string) (##core#inline "C_u_i_string_equal_p" #(1) #(2))))
611
612(scheme#string>? (#(procedure #:clean #:enforce #:foldable) scheme#string>? (string string) boolean))
613(scheme#string<? (#(procedure #:clean #:enforce #:foldable) scheme#string<? (string string) boolean))
614(scheme#string>=? (#(procedure #:clean #:enforce #:foldable) scheme#string>=? (string string) boolean))
615(scheme#string<=? (#(procedure #:clean #:enforce #:foldable) scheme#string<=? (string string) boolean))
616(scheme#string-ci=? (#(procedure #:clean #:enforce #:foldable) scheme#string-ci=? (string string) boolean))
617(scheme#string-ci<? (#(procedure #:clean #:enforce #:foldable) scheme#string-ci<? (string string) boolean))
618(scheme#string-ci>? (#(procedure #:clean #:enforce #:foldable) scheme#string-ci>? (string string) boolean))
619(scheme#string-ci>=? (#(procedure #:clean #:enforce #:foldable) scheme#string-ci>=? (string string) boolean))
620(scheme#string-ci<=? (#(procedure #:clean #:enforce #:foldable) scheme#string-ci<=? (string string) boolean))
621
622(scheme#make-string (#(procedure #:clean #:enforce) scheme#make-string (fixnum #!optional char) string)
623 ((fixnum char) (##sys#make-string #(1) #(2)))
624 ((fixnum) (##sys#make-string #(1) '#\space)))
625
626(scheme#string-length (#(procedure #:clean #:enforce #:foldable) scheme#string-length (string) fixnum)
627 ((string) (##sys#size #(1))))
628
629(scheme#string-ref (#(procedure #:clean #:enforce #:foldable) scheme#string-ref (string fixnum) char)
630 ((string fixnum) (##core#inline "C_i_string_ref" #(1) #(2))))
631
632(scheme#string-set! (#(procedure #:enforce) scheme#string-set! (string fixnum char) undefined)
633 ((string fixnum char) (##core#inline "C_i_string_set" #(1) #(2) #(3))))
634
635(scheme#string-append (#(procedure #:clean #:enforce) scheme#string-append (#!rest string) string)
636 ((string string) (##sys#string-append #(1) #(2))))
637
638(scheme#string-copy (#(procedure #:clean #:enforce) scheme#string-copy (string) string))
639
640(scheme#string->list (#(procedure #:clean #:enforce) scheme#string->list (string) (list-of char)))
641(scheme#list->string (#(procedure #:clean #:enforce) scheme#list->string ((list-of char)) string))
642(scheme#substring (#(procedure #:clean #:enforce) scheme#substring (string fixnum #!optional fixnum) string))
643(scheme#string-fill! (#(procedure #:enforce) scheme#string-fill! (string char) string))
644(scheme#string (#(procedure #:clean #:enforce) scheme#string (#!rest char) string))
645
646(scheme#vector? (#(procedure #:pure #:predicate vector) scheme#vector? (*) boolean))
647
648;; special-cased (see scrutinizer.scm)
649(scheme#make-vector (forall (a) (#(procedure #:clean #:enforce) scheme#make-vector (fixnum #!optional a)
650 (vector-of a))))
651
652;; these are special cased (see scrutinizer.scm)
653(scheme#vector-ref (forall (a) (#(procedure #:clean #:enforce #:foldable) scheme#vector-ref ((vector-of a) fixnum) a)))
654(##sys#vector-ref (forall (a) (#(procedure #:clean #:enforce #:foldable) ##sys#vector-ref ((vector-of a) fixnum) a)))
655
656;; special-cased (see scrutinizer.scm)
657(scheme#vector-set! (#(procedure #:enforce) scheme#vector-set! (vector fixnum *) undefined))
658
659;; special cased (see scrutinizer.scm)
660(scheme#vector (#(procedure #:pure) scheme#vector (#!rest) vector))
661(##sys#vector (#(procedure #:pure) ##sys#vector (#!rest) vector))
662
663(scheme#vector-length (#(procedure #:clean #:enforce #:foldable) scheme#vector-length (vector) fixnum)
664 ((vector) (##sys#size #(1))))
665(##sys#vector-length (#(procedure #:clean #:enforce #:foldable) ##sys#vector-length (vector) fixnum)
666 ((vector) (##sys#size #(1))))
667
668(scheme#vector->list (forall (a) (#(procedure #:clean #:enforce) scheme#vector->list ((vector-of a)) (list-of a))))
669(##sys#vector->list (forall (a) (#(procedure #:clean #:enforce) ##sys#vector->list ((vector-of a)) (list-of a))))
670(scheme#list->vector (forall (a) (#(procedure #:clean #:enforce) scheme#list->vector ((list-of a)) (vector-of a))))
671(##sys#list->vector (forall (a) (#(procedure #:clean #:enforce) ##sys#list->vector ((list-of a)) (vector-of a))))
672(scheme#vector-fill! (#(procedure #:enforce) scheme#vector-fill! (vector *) undefined))
673
674(scheme#procedure? (#(procedure #:pure #:predicate procedure) scheme#procedure? (*) boolean))
675
676
677(scheme#map (forall (a b) (#(procedure #:enforce) scheme#map ((procedure (a #!rest) b) (list-of a) #!rest list) (list-of b))))
678
679(scheme#for-each
680 (forall (a) (#(procedure #:enforce) scheme#for-each ((procedure (a #!rest) . *) (list-of a) #!rest list) undefined)))
681
682(scheme#apply (#(procedure #:enforce) scheme#apply (procedure #!rest) . *))
683(##sys#apply (#(procedure #:enforce) ##sys#apply (procedure #!rest) . *))
684
685(scheme#force (procedure scheme#force (*) . *)
686 (((not (struct promise))) #(1)))
687
688(scheme#call-with-current-continuation
689 (#(procedure #:enforce) scheme#call-with-current-continuation
690 ((procedure (procedure) . *)) . *))
691
692(scheme#input-port? (#(procedure #:pure #:predicate (refine (input) port)) scheme#input-port? (*) boolean))
693(scheme#output-port? (#(procedure #:pure #:predicate (refine (output) port)) scheme#output-port? (*) boolean))
694
695(scheme#current-input-port
696 (#(procedure #:clean #:enforce) scheme#current-input-port
697 (#!optional input-port boolean boolean) input-port)
698 (() ##sys#standard-input)
699 (((refine (input) port))
700 (let ((#(tmp1) #(1)))
701 (let ((#(tmp2) (set! ##sys#standard-input #(tmp1))))
702 #(tmp1)))))
703
704(scheme#current-output-port
705 (#(procedure #:clean #:enforce) scheme#current-output-port
706 (#!optional output-port boolean boolean) output-port)
707 (() ##sys#standard-output)
708 (((refine (output) port))
709 (let ((#(tmp1) #(1)))
710 (let ((#(tmp2) (set! ##sys#standard-output #(tmp1))))
711 #(tmp1)))))
712
713(scheme#call-with-input-file
714 (procedure scheme#call-with-input-file
715 (string (procedure (input-port) . *) #!rest) . *))
716
717(scheme#call-with-output-file
718 (procedure scheme#call-with-output-file
719 (string (procedure (output-port) . *) #!rest) . *))
720
721(scheme#open-input-file (#(procedure #:clean #:enforce) scheme#open-input-file (string #!rest keyword) input-port))
722(scheme#open-output-file (#(procedure #:clean #:enforce) scheme#open-output-file (string #!rest keyword) output-port))
723(scheme#close-input-port (#(procedure #:enforce) scheme#close-input-port (input-port) undefined))
724(scheme#close-output-port (#(procedure #:enforce) scheme#close-output-port (output-port) undefined))
725
726(scheme#read (#(procedure #:enforce) scheme#read (#!optional input-port) *))
727
728(scheme#eof-object? (#(procedure #:pure #:predicate eof) scheme#eof-object? (*) boolean))
729
730(scheme#read-char (#(procedure #:enforce) scheme#read-char (#!optional input-port) (or eof char)))
731(scheme#peek-char (#(procedure #:enforce) scheme#peek-char (#!optional input-port) (or eof char)))
732
733(scheme#write (#(procedure #:enforce) scheme#write (* #!optional output-port) undefined))
734(scheme#display (#(procedure #:enforce) scheme#display (* #!optional output-port) undefined))
735(scheme#write-char (#(procedure #:enforce) scheme#write-char (char #!optional output-port) undefined))
736
737;;XXX Yes, that would be nice, but the output-port may be closed
738#;(##sys#write-char-0
739 (#(procedure #:enforce) ##sys#write-char-0 (char output-port) undefined)
740 ((char output-port)
741 (let ((#(tmp) #(1)))
742 ((##sys#slot (##sys#slot #(tmp) '2) '2) #(tmp) #(2)))))
743
744(scheme#newline (#(procedure #:enforce) scheme#newline (#!optional output-port) undefined))
745
746(scheme#with-input-from-file
747 (#(procedure #:enforce) scheme#with-input-from-file (string (procedure () . *) #!rest keyword) . *))
748
749(scheme#with-output-to-file
750 (#(procedure #:enforce) scheme#with-output-to-file
751 (string (procedure () . *) #!rest keyword) . *))
752
753(scheme#dynamic-wind
754 (#(procedure #:enforce) scheme#dynamic-wind
755 ((procedure () . *) (procedure () . *) (procedure () . *)) . *))
756
757(scheme#values (#(procedure #:clean) scheme#values (#!rest values) . *))
758(##sys#values (#(procedure #:clean) ##sys#values (#!rest values) . *))
759
760(scheme#call-with-values (#(procedure #:enforce) scheme#call-with-values
761 ((procedure () . *) procedure) . *)
762 (((procedure () *) *) (let ((#(tmp1) #(1)))
763 (let ((#(tmp2) #(2)))
764 (#(tmp2) (#(tmp1)))))))
765
766(##sys#call-with-values
767 (#(procedure #:enforce) ##sys#call-with-values ((procedure () . *) procedure) . *)
768 (((procedure () *) *) (let ((#(tmp1) #(1)))
769 (let ((#(tmp2) #(2)))
770 (#(tmp2) (#(tmp1)))))))
771
772(scheme#char-ready? (#(procedure #:enforce) scheme#char-ready? (#!optional input-port) boolean))
773
774(scheme#real-part (#(procedure #:clean #:enforce #:foldable) scheme#real-part (number) (or integer float ratnum))
775 (((or fixnum float bignum ratnum)) #(1))
776 ((cplxnum) (##core#inline "C_u_i_cplxnum_real" #(1))))
777
778(scheme#imag-part (#(procedure #:clean #:enforce #:foldable) scheme#imag-part (number) (or integer float ratnum))
779 (((or fixnum bignum ratnum)) (let ((#(tmp) #(1))) '0))
780 ((float) (let ((#(tmp) #(1))) '0.0))
781 ((cplxnum) (##core#inline "C_u_i_cplxnum_imag" #(1))))
782
783(scheme#magnitude (#(procedure #:clean #:enforce #:foldable) scheme#magnitude (number) number)
784 ((fixnum) (integer) (##core#inline_allocate ("C_a_i_fixnum_abs" 5) #(1)))
785 ((integer) (##core#inline_allocate ("C_s_a_u_i_integer_abs" 5) #(1)))
786 ((float) (float) (##core#inline_allocate ("C_a_i_flonum_abs" 4) #(1)))
787 (((or fixnum float bignum ratnum))
788 (##core#inline_allocate ("C_s_a_i_abs" 7) #(1))))
789
790(scheme#angle (#(procedure #:clean #:enforce #:foldable) scheme#angle (number) float)
791 ((float) (##core#inline_allocate ("C_a_i_flonum_atan2" 4) '0.0 #(1)))
792 ((fixnum) (##core#inline_allocate
793 ("C_a_i_flonum_atan2" 4)
794 '0.0
795 (##core#inline_allocate ("C_a_i_fix_to_flo" 4) #(1))))
796 ((cplxnum)
797 (let ((#(tmp) #(1)))
798 (##core#inline_allocate
799 ("C_a_i_flonum_atan2" 4)
800 (##core#inline_allocate ("C_a_i_exact_to_inexact" 11)
801 (##core#inline "C_u_i_cplxnum_imag" #(tmp)))
802 (##core#inline_allocate ("C_a_i_exact_to_inexact" 11)
803 (##core#inline "C_u_i_cplxnum_real" #(tmp)))))))
804
805(scheme#numerator (#(procedure #:clean #:enforce #:foldable) scheme#numerator ((or float integer ratnum)) (or float integer))
806 ((fixnum) (fixnum) #(1))
807 ((bignum) (bignum) #(1))
808 ((integer) (integer) #(1))
809 ((ratnum) (integer) (##core#inline "C_u_i_ratnum_num" #(1))))
810
811(scheme#denominator (#(procedure #:clean #:enforce #:foldable) scheme#denominator ((or float integer ratnum)) (or float integer))
812 ((integer) (fixnum) (let ((#(tmp) #(1))) '1))
813 ((ratnum) (integer) (##core#inline "C_u_i_ratnum_denom" #(1))))
814
815(scheme#load (procedure scheme#load (string #!optional (procedure (*) . *)) undefined))
816
817(scheme#eval (procedure scheme#eval (* #!optional (struct environment)) . *))
818
819(scheme#scheme-report-environment
820 (#(procedure #:clean #:enforce) scheme#scheme-report-environment (#!optional fixnum) (struct environment)))
821
822(scheme#null-environment
823 (#(procedure #:clean #:enforce) scheme#null-environment (#!optional fixnum) (struct environment)))
824
825(scheme#interaction-environment
826 (#(procedure #:clean) scheme#interaction-environment () (struct environment)))
827
828
829
830;; eval
831
832(chicken.eval#module-environment
833 (#(procedure #:clean #:enforce) chicken.eval#module-environment ((or symbol (list-of (or symbol fixnum)))) (struct environment)))
834
835
836;; base
837
838(chicken.base#add1 (#(procedure #:clean #:enforce #:foldable) chicken.base#add1 (number) number)
839 ((fixnum) (integer)
840 (##core#inline_allocate ("C_a_i_fixnum_plus" 5) #(1) '1))
841 ((integer) (integer)
842 (##core#inline_allocate ("C_s_a_u_i_integer_plus" 5) #(1) '1))
843 ((float) (float)
844 (##core#inline_allocate ("C_a_i_flonum_plus" 4) #(1) '1.0))
845 ((*) (number)
846 (##core#inline_allocate ("C_s_a_i_plus" 29) #(1) '1)))
847
848(chicken.base#sub1 (#(procedure #:clean #:enforce #:foldable) chicken.base#sub1 (number) number)
849 ((fixnum) (integer)
850 (##core#inline_allocate ("C_a_i_fixnum_difference" 5) #(1) '1))
851 ((integer) (integer)
852 (##core#inline_allocate ("C_s_a_u_i_integer_minus" 5) #(1) '1))
853 ((float) (float)
854 (##core#inline_allocate ("C_a_i_flonum_difference" 4) #(1) '1.0))
855 ((*) (number)
856 (##core#inline_allocate ("C_s_a_i_minus" 29) #(1) '1)))
857
858(chicken.base#subvector (forall (a) (#(procedure #:clean #:enforce) chicken.base#subvector ((vector-of a) fixnum #!optional fixnum) (vector-of a))))
859(chicken.base#vector-copy! (#(procedure #:enforce) chicken.base#vector-copy! (vector vector #!optional fixnum) undefined))
860(chicken.base#vector-resize
861 (forall (a b) (#(procedure #:clean #:enforce) chicken.base#vector-resize ((vector-of a) fixnum #!optional b)
862 (vector-of (or a b)))))
863
864(chicken.base#void (#(procedure #:pure) chicken.base#void (#!rest) undefined))
865(chicken.base#warning (procedure chicken.base#warning (* #!rest) undefined))
866(chicken.base#notice (procedure chicken.base#notice (* #!rest) undefined))
867
868(chicken.base#exact-integer? (#(procedure #:pure #:foldable) chicken.base#exact-integer? (*) boolean)
869 ((integer) (let ((#(tmp) #(1))) '#t))
870 (((not integer)) (let ((#(tmp) #(1))) '#f))
871 ((*) (##core#inline "C_i_exact_integerp" #(1))))
872(chicken.base#exact-integer-nth-root (#(procedure #:clean #:enforce #:foldable) chicken.base#exact-integer-nth-root (integer integer) integer integer)
873 ((integer integer) (##sys#exact-integer-nth-root/loc 'exact-integer-nth-root #(1) #(2))))
874
875(chicken.base#exact-integer-sqrt (#(procedure #:clean #:enforce #:foldable) chicken.base#exact-integer-sqrt (integer) integer integer)
876 ((integer) (##sys#exact-integer-sqrt #(1))))
877
878(chicken.base#weak-cons (forall (a b) (#(procedure #:pure) chicken.base#weak-cons (a b) (pair (or a bwp) b))))
879;; NOTE: This is *not* a #:predicate, as we don't want to introduce a completely new weak-pair type
880(chicken.base#weak-pair? (#(procedure #:pure) chicken.base#weak-pair? (*) boolean))
881(chicken.base#bwp-object? (#(procedure #:pure #:predicate bwp) chicken.base#bwp-object? (*) boolean))
882
883(chicken.base#fixnum? (#(procedure #:pure #:predicate fixnum) chicken.base#fixnum? (*) boolean))
884(chicken.base#flonum? (#(procedure #:pure #:predicate float) chicken.base#flonum? (*) boolean))
885(chicken.base#bignum? (#(procedure #:pure #:predicate bignum) chicken.base#bignum? (*) boolean))
886(chicken.base#ratnum? (#(procedure #:pure #:predicate ratnum) chicken.base#ratnum? (*) boolean))
887(chicken.base#cplxnum? (#(procedure #:pure #:predicate cplxnum) chicken.base#cplxnum? (*) boolean))
888
889(chicken.base#foldl (forall (a b) (#(procedure #:enforce) chicken.base#foldl ((procedure (a b) a) a (list-of b)) a)))
890(chicken.base#foldr (forall (a b) (#(procedure #:enforce) chicken.base#foldr ((procedure (a b) b) b (list-of a)) b)))
891
892(chicken.base#nan? (#(procedure #:clean #:enforce #:foldable) chicken.base#nan? (number) boolean)
893 (((or integer ratnum)) (let ((#(tmp) #(1))) '#f))
894 ((float) (##core#inline "C_u_i_flonum_nanp" #(1)))
895 ((*) (##core#inline "C_i_nanp" #(1))))
896
897(chicken.base#infinite? (#(procedure #:clean #:enforce #:foldable) chicken.base#infinite? (number) boolean)
898 (((or integer ratnum)) (let ((#(tmp) #(1))) '#f))
899 ((float) (##core#inline "C_u_i_flonum_infinitep" #(1)))
900 ((*) (##core#inline "C_i_infinitep" #(1))))
901
902(chicken.base#finite? (#(procedure #:clean #:enforce #:foldable) chicken.base#finite? (number) boolean)
903 (((or integer ratnum)) (let ((#(tmp) #(1))) '#t))
904 ((float) (##core#inline "C_u_i_flonum_finitep" #(1)))
905 ((*) (##core#inline "C_i_finitep" #(1))))
906
907(chicken.base#get-call-chain (#(procedure #:clean #:enforce) chicken.base#get-call-chain (#!optional fixnum (struct thread)) (list-of vector)))
908(chicken.base#print-call-chain (#(procedure #:clean #:enforce) chicken.base#print-call-chain (#!optional output-port fixnum * string) undefined))
909
910(chicken.base#print (procedure chicken.base#print (#!rest *) undefined))
911(chicken.base#print* (procedure chicken.base#print* (#!rest) undefined))
912(chicken.base#procedure-information (#(procedure #:clean #:enforce) chicken.base#procedure-information (procedure) *))
913(chicken.base#promise? (#(procedure #:pure #:predicate (struct promise)) chicken.base#promise? (*) boolean))
914
915(chicken.base#make-promise (#(procedure #:enforce) chicken.base#make-promise (*) (struct promise))
916 (((struct promise)) #(1)))
917
918(chicken.base#call/cc (#(procedure #:enforce) chicken.base#call/cc ((procedure (*) . *)) . *))
919
920(chicken.base#port? (#(procedure #:pure #:predicate port) chicken.base#port? (*) boolean))
921
922(chicken.base#port-closed?
923 (#(procedure #:clean #:enforce) chicken.base#port-closed? (port) boolean)
924 ((port) (scheme#eq? (##sys#slot #(1) '8) '0)))
925
926(chicken.base#input-port-open? (#(procedure #:enforce) chicken.base#input-port-open? (input-port) boolean))
927(chicken.base#output-port-open? (#(procedure #:enforce) chicken.base#output-port-open? (output-port) boolean))
928
929(chicken.base#get-output-string (#(procedure #:clean #:enforce) chicken.base#get-output-string (output-port) string))
930(chicken.base#open-input-string (#(procedure #:clean #:enforce) chicken.base#open-input-string (string #!rest) input-port))
931(chicken.base#open-output-string (#(procedure #:clean) chicken.base#open-output-string (#!rest) output-port))
932
933(chicken.base#current-error-port
934 (#(procedure #:clean #:enforce) chicken.base#current-error-port (#!optional output-port boolean boolean) output-port)
935 ((output-port) (let ((#(tmp1) #(1)))
936 (let ((#(tmp2) (set! ##sys#standard-error #(tmp1))))
937 #(tmp1))))
938 (() ##sys#standard-error))
939
940(chicken.base#flush-output (#(procedure #:enforce) chicken.base#flush-output (#!optional output-port) undefined))
941
942(chicken.base#enable-warnings (#(procedure #:clean) chicken.base#enable-warnings (#!optional *) *))
943
944(chicken.base#error (procedure chicken.base#error (* #!rest) noreturn))
945(chicken.base#equal=? (#(procedure #:clean #:foldable) chicken.base#equal=? (* *) boolean)
946 ((fixnum fixnum) (scheme#eq? #(1) #(2)))
947 (((or symbol keyword char eof bwp null undefined) *) (scheme#eq? #(1) #(2)))
948 ((* (or symbol keyword char eof bwp null undefined)) (scheme#eq? #(1) #(2)))
949 ((number number) (scheme#= #(1) #(2))))
950
951(chicken.base#emergency-exit (procedure chicken.base#emergency-exit (#!optional fixnum) noreturn))
952(chicken.base#on-exit (#(procedure #:clean #:enforce) chicken.base#on-exit ((procedure () . *)) undefined))
953(chicken.base#implicit-exit-handler
954 (#(procedure #:clean #:enforce) chicken.base#implicit-exit-handler (#!optional (procedure () . *)) procedure))
955
956(chicken.base#sleep (#(procedure #:clean #:enforce) chicken.base#sleep (fixnum) undefined))
957
958(chicken.base#exit (procedure chicken.base#exit (#!optional fixnum) noreturn))
959(chicken.base#exit-handler (#(procedure #:clean #:enforce) chicken.base#exit-handler (#!optional (procedure (fixnum) . *)) procedure))
960
961(chicken.base#gensym (#(procedure #:clean) chicken.base#gensym (#!optional (or string symbol)) symbol))
962(chicken.base#char-name (#(procedure #:clean #:enforce) chicken.base#char-name ((or char symbol) #!optional char) *)) ;XXX -> (or char symbol) ?
963
964(chicken.base#getter-with-setter
965 (#(procedure #:clean #:enforce)
966 chicken.base#getter-with-setter
967 ((procedure (#!rest) *) (procedure (* #!rest) . *) #!optional string)
968 procedure))
969(chicken.base#setter (#(procedure #:clean #:enforce) chicken.base#setter (procedure) procedure))
970
971(chicken.base#signum (#(procedure #:clean #:enforce) chicken.base#signum (number) (or fixnum float cplxnum))
972 ((fixnum) (fixnum) (##core#inline "C_i_fixnum_signum" #(1)))
973 ((integer) (fixnum) (##core#inline "C_u_i_integer_signum" #(1)))
974 ((float) (float)
975 (##core#inline_allocate ("C_a_u_i_flonum_signum" 4) #(1)))
976 ((ratnum) (fixnum)
977 (##core#inline "C_u_i_integer_signum"
978 (##core#inline "C_u_i_ratnum_num" #(1))))
979 ((cplxnum) ((or float cplxnum)) (##sys#extended-signum #(1))))
980
981(chicken.base#make-parameter (#(procedure #:clean #:enforce) chicken.base#make-parameter (* #!optional procedure) procedure))
982(chicken.base#string->uninterned-symbol (#(procedure #:clean #:enforce) chicken.base#string->uninterned-symbol (string) symbol))
983(chicken.base#symbol-append (#(procedure #:clean #:enforce #:foldable) chicken.base#symbol-append (#!rest symbol) symbol))
984
985(chicken.base#case-sensitive (#(procedure #:clean) chicken.base#case-sensitive (#!optional *) *))
986(chicken.base#keyword-style (#(procedure #:clean) chicken.base#keyword-style (#!optional (or keyword false)) *))
987(chicken.base#parentheses-synonyms (#(procedure #:clean) chicken.base#parentheses-synonyms (#!optional *) *))
988(chicken.base#symbol-escape (#(procedure #:clean) chicken.base#symbol-escape (#!optional *) *))
989
990(chicken.base#quotient&remainder (#(procedure #:clean #:enforce #:foldable) chicken.base#quotient&remainder ((or integer float) (or integer float)) (or integer float) (or integer float))
991 ((float float) (float float)
992 (let ((#(tmp1) #(1)))
993 (let ((#(tmp2) #(2)))
994 (##sys#values
995 (##core#inline_allocate
996 ("C_a_i_flonum_actual_quotient_checked" 4) #(tmp1) #(tmp2))
997 (##core#inline_allocate
998 ("C_a_i_flonum_remainder_checked" 4) #(tmp1) #(tmp2))))))
999 ;;XXX flonum/mixed case
1000 ((fixnum fixnum) (integer fixnum)
1001 (let ((#(tmp1) #(1)))
1002 (let ((#(tmp2) #(2)))
1003 (##sys#values
1004 (##core#inline_allocate ("C_a_i_fixnum_quotient_checked" 5)
1005 #(tmp1) #(tmp2))
1006 (##core#inline
1007 "C_i_fixnum_remainder_checked" #(tmp1) #(tmp2))))))
1008 ((integer integer) (integer integer)
1009 ((##core#primitive "C_u_integer_quotient_and_remainder") #(1) #(2))))
1010
1011;; TODO: Add nonspecializing type specific entries, to help flow analysis?
1012(chicken.base#quotient&modulo (#(procedure #:clean #:enforce #:foldable) chicken.base#quotient&modulo ((or integer float) (or integer float)) (or integer float) (or integer float)))
1013
1014(chicken.base#record-printer (#(procedure #:enforce) chicken.base#record-printer (symbol) (or false procedure)))
1015(chicken.base#set-record-printer! (#(procedure #:enforce) chicken.base#set-record-printer! (symbol procedure) undefined))
1016
1017(chicken.base#alist-ref
1018 (forall (a b c d)
1019 (#(procedure #:clean #:foldable) chicken.base#alist-ref
1020 (a (list-of (pair b c)) #!optional (procedure (a b) *) d)
1021 (or false c d))))
1022(chicken.base#alist-update!
1023 (forall (a b c d)
1024 (#(procedure) chicken.base#alist-update!
1025 (a b (list-of (pair c d)) #!optional (procedure (a c) *))
1026 (list-of (pair c (or b d))))))
1027(chicken.base#alist-update
1028 (forall (a b c d)
1029 (#(procedure #:clean) chicken.base#alist-update
1030 (a b (list-of (pair c d)) #!optional (procedure (a c) *))
1031 (list-of (pair c (or b d))))))
1032
1033(chicken.base#atom? (#(procedure #:pure #:foldable) chicken.base#atom? (*) boolean)
1034 ((pair) (let ((#(tmp) #(1))) '#f))
1035 (((not (or pair list))) (let ((#(tmp) #(1))) '#t)))
1036
1037(chicken.base#butlast (forall (a) (#(procedure #:clean #:enforce) chicken.base#butlast ((pair a *)) (list-of a))))
1038(chicken.base#chop (forall (a) (#(procedure #:clean #:enforce) chicken.base#chop ((list-of a) fixnum) (list-of a))))
1039(chicken.base#complement (#(procedure #:clean #:enforce) chicken.base#complement ((procedure (#!rest) *)) (procedure (#!rest) boolean)))
1040(chicken.base#compose (#(procedure #:clean #:enforce) chicken.base#compose (#!rest procedure) procedure))
1041(chicken.base#compress (forall (a) (#(procedure #:clean #:enforce) chicken.base#compress (list (list-of a)) (list-of a))))
1042(chicken.base#conjoin (#(procedure #:clean #:enforce) chicken.base#conjoin (#!rest (procedure (*) *)) (procedure (*) *)))
1043(chicken.base#constantly (forall (a) (#(procedure #:pure) chicken.base#constantly (a) (procedure (#!rest) a))))
1044(chicken.base#disjoin (#(procedure #:clean #:enforce) chicken.base#disjoin (#!rest (procedure (*) *)) (procedure (*) *)))
1045(chicken.base#each (#(procedure #:clean #:enforce) chicken.base#each (#!rest procedure) procedure))
1046(chicken.base#flatten (#(procedure #:clean #:enforce) chicken.base#flatten (#!rest *) list))
1047(chicken.base#flip (#(procedure #:clean #:enforce) chicken.base#flip ((procedure (* *) . *)) (procedure (* *) . *)))
1048(chicken.base#identity (forall (a) (#(procedure #:pure #:foldable) chicken.base#identity (a) a)))
1049(chicken.base#intersperse (#(procedure #:clean #:enforce) chicken.base#intersperse (list *) list))
1050(chicken.base#join (#(procedure #:clean #:enforce) chicken.base#join ((list-of list) #!optional list) list))
1051(chicken.base#list-of? (#(procedure #:clean #:enforce) chicken.base#list-of? ((procedure (*) *)) (procedure (list) boolean)))
1052
1053(chicken.base#o (#(procedure #:clean #:enforce) chicken.base#o (#!rest (procedure (*) *)) (procedure (*) *)))
1054
1055(chicken.base#rassoc
1056 (forall (a b c) (#(procedure #:clean #:foldable) chicken.base#rassoc
1057 (a (list-of (pair b c)) #!optional (procedure (a b) *))
1058 (or false (pair b c)))))
1059(chicken.base#tail? (#(procedure #:clean) chicken.base#tail? (* *) boolean))
1060
1061
1062;; bitwise
1063
1064(chicken.bitwise#integer-length
1065 (#(procedure #:clean #:enforce #:foldable) chicken.bitwise#integer-length (integer) fixnum)
1066 ((fixnum) (##core#inline "C_i_fixnum_length" #(1)))
1067 ((*) (##core#inline "C_i_integer_length" #(1))))
1068
1069(chicken.bitwise#arithmetic-shift
1070 (#(procedure #:clean #:enforce #:foldable) chicken.bitwise#arithmetic-shift (integer fixnum) integer))
1071
1072(chicken.bitwise#bit->boolean
1073 (#(procedure #:clean #:enforce #:foldable) chicken.bitwise#bit->boolean (integer integer) boolean)
1074 ((fixnum fixnum) (##core#inline "C_i_fixnum_bit_to_bool" #(1) #(2))))
1075
1076(chicken.bitwise#bitwise-and
1077 (#(procedure #:clean #:enforce #:foldable) chicken.bitwise#bitwise-and (#!rest integer) integer)
1078 (() '-1)
1079 ((fixnum) (fixnum) #(1))
1080 ((integer) #(1))
1081 ((fixnum fixnum) (fixnum) (##core#inline "C_u_fixnum_and" #(1) #(2))))
1082
1083(chicken.bitwise#bitwise-ior
1084 (#(procedure #:clean #:enforce #:foldable) chicken.bitwise#bitwise-ior (#!rest integer) integer)
1085 (() '0)
1086 ((fixnum) (fixnum) #(1))
1087 ((integer) #(1))
1088 ((fixnum fixnum) (fixnum) (##core#inline "C_u_fixnum_or" #(1) #(2))))
1089
1090(chicken.bitwise#bitwise-xor
1091 (#(procedure #:clean #:enforce #:foldable) chicken.bitwise#bitwise-xor (#!rest integer) integer)
1092 (() '0)
1093 ((fixnum) (fixnum) #(1))
1094 ((integer) #(1))
1095 ((fixnum fixnum) (fixnum) (##core#inline "C_fixnum_xor" #(1) #(2))))
1096
1097(chicken.bitwise#bitwise-not
1098 (#(procedure #:clean #:enforce #:foldable) chicken.bitwise#bitwise-not (integer) integer))
1099
1100;; blob
1101
1102(chicken.blob#blob? (#(procedure #:pure #:predicate blob) chicken.blob#blob? (*) boolean))
1103(chicken.blob#blob=? (#(procedure #:clean #:enforce #:foldable) chicken.blob#blob=? (blob blob) boolean))
1104(chicken.blob#blob-size (#(procedure #:clean #:enforce #:foldable) chicken.blob#blob-size (blob) fixnum)
1105 ((blob) (##sys#size #(1))))
1106(chicken.blob#blob->string (#(procedure #:clean #:enforce) chicken.blob#blob->string (blob) string))
1107(chicken.blob#make-blob (#(procedure #:clean #:enforce) chicken.blob#make-blob (fixnum) blob)
1108 ((fixnum) (##sys#make-blob #(1))))
1109(chicken.blob#string->blob (#(procedure #:clean #:enforce) chicken.blob#string->blob (string) blob))
1110
1111;; condition
1112
1113(chicken.condition#abort (procedure chicken.condition#abort (*) noreturn))
1114(chicken.condition#condition (#(procedure #:clean #:enforce) chicken.condition#condition (list #!rest list) (struct condition)))
1115(chicken.condition#condition? (#(procedure #:pure #:predicate (struct condition)) chicken.condition#condition? (*) boolean))
1116(chicken.condition#condition->list (#(procedure #:clean #:enforce) chicken.condition#condition->list ((struct condition)) (list-of pair)))
1117(chicken.condition#condition-predicate (#(procedure #:clean #:enforce) chicken.condition#condition-predicate (*) (procedure ((struct condition)) boolean)))
1118(chicken.condition#condition-property-accessor (#(procedure #:clean #:enforce) chicken.condition#condition-property-accessor (* * #!optional *) (procedure ((struct condition)) *)))
1119
1120(chicken.condition#current-exception-handler
1121 (#(procedure #:clean #:enforce) chicken.condition#current-exception-handler (#!optional (procedure (*) noreturn) boolean boolean) procedure)
1122 ((procedure) (let ((#(tmp1) #(1)))
1123 (let ((#(tmp2) (set! ##sys#current-exception-handler #(tmp1))))
1124 #(tmp1))))
1125 (() ##sys#current-exception-handler))
1126(chicken.condition#get-condition-property (#(procedure #:clean #:enforce) chicken.condition#get-condition-property ((struct condition) * * #!optional *) *))
1127(chicken.condition#make-composite-condition (#(procedure #:clean #:enforce) chicken.condition#make-composite-condition (#!rest (struct condition)) (struct condition)))
1128(chicken.condition#make-property-condition (#(procedure #:clean #:enforce) chicken.condition#make-property-condition (* #!rest *) (struct condition)))
1129(chicken.condition#print-error-message (#(procedure #:clean #:enforce) chicken.condition#print-error-message (* #!optional output-port string) undefined))
1130(chicken.condition#with-exception-handler (#(procedure #:enforce) chicken.condition#with-exception-handler ((procedure (*) . *) (procedure () . *)) . *))
1131(chicken.condition#signal (procedure chicken.condition#signal (*) . *))
1132
1133;; continuation
1134
1135(chicken.continuation#continuation-capture (#(procedure #:enforce) chicken.continuation#continuation-capture ((procedure ((struct continuation)) . *)) *))
1136(chicken.continuation#continuation-graft (#(procedure #:clean #:enforce) chicken.continuation#continuation-graft ((struct continuation) (procedure () . *)) *))
1137(chicken.continuation#continuation-return (#(procedure #:enforce) chicken.continuation#continuation-return ((struct continuation) #!rest) . *)) ;XXX make return type more specific?
1138(chicken.continuation#continuation? (#(procedure #:pure #:predicate (struct continuation)) chicken.continuation#continuation? (*) boolean))
1139
1140;; read-syntax
1141
1142(chicken.read-syntax#copy-read-table (#(procedure #:clean #:enforce) chicken.read-syntax#copy-read-table ((struct read-table)) (struct read-table)))
1143(chicken.read-syntax#current-read-table
1144 (#(procedure #:clean) chicken.read-syntax#current-read-table (#!optional (struct read-table)) (struct read-table)))
1145(chicken.read-syntax#define-reader-ctor (#(procedure #:clean #:enforce) chicken.read-syntax#define-reader-ctor (symbol procedure) undefined))
1146
1147(chicken.read-syntax#set-parameterized-read-syntax!
1148 (#(procedure #:clean #:enforce) chicken.read-syntax#set-parameterized-read-syntax!
1149 ((or char symbol) (or false (procedure (input-port fixnum) . *)))
1150 undefined))
1151
1152(chicken.read-syntax#set-read-syntax!
1153 (#(procedure #:clean #:enforce) chicken.read-syntax#set-read-syntax!
1154 ((or char symbol) (or false (procedure (input-port) . *)))
1155 undefined))
1156
1157(chicken.read-syntax#set-sharp-read-syntax!
1158 (#(procedure #:clean #:enforce) chicken.read-syntax#set-sharp-read-syntax!
1159 ((or char symbol) (or false (procedure (input-port) . *))) undefined))
1160
1161
1162;; time
1163
1164(chicken.time#cpu-time (#(procedure #:clean) chicken.time#cpu-time () fixnum fixnum))
1165(chicken.time#current-seconds (#(procedure #:clean) chicken.time#current-seconds () integer))
1166(chicken.time#current-milliseconds deprecated)
1167(chicken.time#current-process-milliseconds (#(procedure #:clean) chicken.time#current-process-milliseconds () integer))
1168
1169(##sys#error (procedure ##sys#error (* #!rest) noreturn))
1170(##sys#signal-hook (procedure ##sys#signal-hook (* #!rest) noreturn))
1171(##sys#debug-mode? (procedure ##sys#debug-mode? () boolean)
1172 (() (##core#inline "C_i_debug_modep")))
1173
1174
1175;; flonum
1176
1177(chicken.flonum#flonum-decimal-precision fixnum)
1178(chicken.flonum#flonum-epsilon float)
1179(chicken.flonum#flonum-maximum-decimal-exponent fixnum)
1180(chicken.flonum#flonum-maximum-exponent fixnum)
1181(chicken.flonum#flonum-minimum-decimal-exponent fixnum)
1182(chicken.flonum#flonum-minimum-exponent fixnum)
1183(chicken.flonum#flonum-precision fixnum)
1184(chicken.flonum#flonum-print-precision (#(procedure #:clean #:enforce) chicken.flonum#flonum-print-precision (#!optional fixnum) fixnum))
1185(chicken.flonum#flonum-radix fixnum)
1186
1187(chicken.flonum#fp- (#(procedure #:clean #:enforce #:foldable) chicken.flonum#fp- (float float) float)
1188 ((float float) (##core#inline_allocate ("C_a_i_flonum_difference" 4) #(1) #(2)) ))
1189
1190(chicken.flonum#fp* (#(procedure #:clean #:enforce #:foldable) chicken.flonum#fp* (float float) float)
1191 ((float float) (##core#inline_allocate ("C_a_i_flonum_times" 4) #(1) #(2)) ))
1192
1193(chicken.flonum#fp/ (#(procedure #:clean #:enforce #:foldable) chicken.flonum#fp/ (float float) float)
1194 ((float float) (##core#inline_allocate ("C_a_i_flonum_quotient" 4) #(1) #(2)) ))
1195
1196(chicken.flonum#fpgcd (#(procedure #:clean #:enforce #:foldable) chicken.flonum#fpgcd (float float) float)
1197 ((float float) (##core#inline_allocate ("C_a_i_flonum_gcd" 4) #(1) #(2)) ))
1198
1199(chicken.flonum#fp+ (#(procedure #:clean #:enforce #:foldable) chicken.flonum#fp+ (float float) float)
1200 ((float float) (##core#inline_allocate ("C_a_i_flonum_plus" 4) #(1) #(2)) ))
1201
1202(chicken.flonum#fp*+ (#(procedure #:clean #:enforce #:foldable) chicken.flonum#fp*+ (float float float) float)
1203 ((float float float) (##core#inline_allocate ("C_a_i_flonum_multiply_add" 4) #(1) #(2) #(3)) ))
1204
1205(chicken.flonum#fp< (#(procedure #:clean #:enforce #:foldable) chicken.flonum#fp< (float float) boolean)
1206 ((float float) (##core#inline "C_flonum_lessp" #(1) #(2)) ))
1207
1208(chicken.flonum#fp<= (#(procedure #:clean #:enforce #:foldable) chicken.flonum#fp<= (float float) boolean)
1209 ((float float) (##core#inline "C_flonum_less_or_equal_p" #(1) #(2)) ))
1210
1211(chicken.flonum#fp= (#(procedure #:clean #:enforce #:foldable) chicken.flonum#fp= (float float) boolean)
1212 ((float float) (##core#inline "C_flonum_equalp" #(1) #(2)) ))
1213
1214(chicken.flonum#fp> (#(procedure #:clean #:enforce #:foldable) chicken.flonum#fp> (float float) boolean)
1215 ((float float) (##core#inline "C_flonum_greaterp" #(1) #(2)) ))
1216
1217(chicken.flonum#fp>= (#(procedure #:clean #:enforce #:foldable) chicken.flonum#fp>= (float float) boolean)
1218 ((float float) (##core#inline "C_flonum_greater_or_equal_p" #(1) #(2)) ))
1219
1220(chicken.flonum#fpabs (#(procedure #:clean #:enforce #:foldable) chicken.flonum#fpabs (float) float)
1221 ((float) (##core#inline_allocate ("C_a_i_flonum_abs" 4) #(1) )))
1222
1223(chicken.flonum#fpacos (#(procedure #:clean #:enforce #:foldable) chicken.flonum#fpacos (float) float)
1224 ((float) (##core#inline_allocate ("C_a_i_flonum_acos" 4) #(1) )))
1225
1226(chicken.flonum#fpacosh (#(procedure #:clean #:enforce #:foldable) chicken.flonum#fpacosh (float) float)
1227 ((float) (##core#inline_allocate ("C_a_i_flonum_acosh" 4) #(1) )))
1228
1229(chicken.flonum#fpasin (#(procedure #:clean #:enforce #:foldable) chicken.flonum#fpasin (float) float)
1230 ((float) (##core#inline_allocate ("C_a_i_flonum_asin" 4) #(1) )))
1231
1232(chicken.flonum#fpasinh (#(procedure #:clean #:enforce #:foldable) chicken.flonum#fpasinh (float) float)
1233 ((float) (##core#inline_allocate ("C_a_i_flonum_asinh" 4) #(1) )))
1234
1235(chicken.flonum#fpatan (#(procedure #:clean #:enforce #:foldable) chicken.flonum#fpatan (float) float)
1236 ((float) (##core#inline_allocate ("C_a_i_flonum_atan" 4) #(1) )))
1237
1238(chicken.flonum#fpatanh (#(procedure #:clean #:enforce #:foldable) chicken.flonum#fpatanh (float) float)
1239 ((float) (##core#inline_allocate ("C_a_i_flonum_atanh" 4) #(1) )))
1240
1241(chicken.flonum#fpatan2 (#(procedure #:clean #:enforce #:foldable) chicken.flonum#fpatan2 (float float) float)
1242 ((float float) (##core#inline_allocate ("C_a_i_flonum_atan2" 4) #(1) #(2))))
1243
1244(chicken.flonum#fpceiling (#(procedure #:clean #:enforce #:foldable) chicken.flonum#fpceiling (float) float)
1245 ((float) (##core#inline_allocate ("C_a_i_flonum_ceiling" 4) #(1) )))
1246
1247(chicken.flonum#fpcos (#(procedure #:clean #:enforce #:foldable) chicken.flonum#fpcos (float) float)
1248 ((float) (##core#inline_allocate ("C_a_i_flonum_cos" 4) #(1) )))
1249
1250(chicken.flonum#fpcosh (#(procedure #:clean #:enforce #:foldable) chicken.flonum#fpcosh (float) float)
1251 ((float) (##core#inline_allocate ("C_a_i_flonum_cosh" 4) #(1) )))
1252
1253(chicken.flonum#fpexp (#(procedure #:clean #:enforce #:foldable) chicken.flonum#fpexp (float) float)
1254 ((float) (##core#inline_allocate ("C_a_i_flonum_exp" 4) #(1) )))
1255
1256(chicken.flonum#fpexpt (#(procedure #:clean #:enforce #:foldable) chicken.flonum#fpexpt (float float) float)
1257 ((float float) (##core#inline_allocate ("C_a_i_flonum_expt" 4) #(1) #(2))))
1258
1259(chicken.flonum#fpfloor (#(procedure #:clean #:enforce #:foldable) chicken.flonum#fpfloor (float) float)
1260 ((float) (##core#inline_allocate ("C_a_i_flonum_floor" 4) #(1) )))
1261
1262(chicken.flonum#fpinteger? (#(procedure #:clean #:enforce #:foldable) chicken.flonum#fpinteger? (float) boolean)
1263 ((float) (##core#inline "C_u_i_fpintegerp" #(1) )))
1264
1265(chicken.flonum#fplog (#(procedure #:clean #:enforce #:foldable) chicken.flonum#fplog (float) float)
1266 ((float) (##core#inline_allocate ("C_a_i_flonum_log" 4) #(1) )))
1267
1268(chicken.flonum#fpmax (#(procedure #:clean #:enforce #:foldable) chicken.flonum#fpmax (float float) float)
1269 ((float float) (##core#inline "C_i_flonum_max" #(1) #(2))))
1270
1271(chicken.flonum#fpmin (#(procedure #:clean #:enforce #:foldable) chicken.flonum#fpmin (float float) float)
1272 ((float float) (##core#inline "C_i_flonum_min" #(1) #(2))))
1273
1274(chicken.flonum#fpneg (#(procedure #:clean #:enforce #:foldable) chicken.flonum#fpneg (float) float)
1275 ((float) (##core#inline_allocate ("C_a_i_flonum_negate" 4) #(1) )))
1276
1277(chicken.flonum#fpround (#(procedure #:clean #:enforce #:foldable) chicken.flonum#fpround (float) float)
1278 ((float) (##core#inline_allocate ("C_a_i_flonum_round" 4) #(1) )))
1279
1280(chicken.flonum#fpsin (#(procedure #:clean #:enforce #:foldable) chicken.flonum#fpsin (float) float)
1281 ((float) (##core#inline_allocate ("C_a_i_flonum_sin" 4) #(1) )))
1282
1283(chicken.flonum#fpsinh (#(procedure #:clean #:enforce #:foldable) chicken.flonum#fpsinh (float) float)
1284 ((float) (##core#inline_allocate ("C_a_i_flonum_sinh" 4) #(1) )))
1285
1286(chicken.flonum#fpsqrt (#(procedure #:clean #:enforce #:foldable) chicken.flonum#fpsqrt (float) float)
1287 ((float) (##core#inline_allocate ("C_a_i_flonum_sqrt" 4) #(1) )))
1288
1289(chicken.flonum#fptan (#(procedure #:clean #:enforce #:foldable) chicken.flonum#fptan (float) float)
1290 ((float) (##core#inline_allocate ("C_a_i_flonum_tan" 4) #(1) )))
1291
1292(chicken.flonum#fptanh (#(procedure #:clean #:enforce #:foldable) chicken.flonum#fptanh (float) float)
1293 ((float) (##core#inline_allocate ("C_a_i_flonum_tanh" 4) #(1) )))
1294
1295(chicken.flonum#fptruncate (#(procedure #:clean #:enforce #:foldable) chicken.flonum#fptruncate (float) float)
1296 ((float) (##core#inline_allocate ("C_a_i_flonum_truncate" 4) #(1) )))
1297
1298;; fixnum
1299
1300(chicken.fixnum#fixnum-bits fixnum)
1301(chicken.fixnum#fixnum-precision fixnum)
1302
1303;;XXX These aren't enforcing, and aren't foldable due to 32/64-bit issues
1304(chicken.fixnum#fx- (#(procedure #:clean) chicken.fixnum#fx- (fixnum fixnum) fixnum))
1305(chicken.fixnum#fx* (#(procedure #:clean) chicken.fixnum#fx* (fixnum fixnum) fixnum))
1306(chicken.fixnum#fx/ (#(procedure #:clean) chicken.fixnum#fx/ (fixnum fixnum) fixnum))
1307(chicken.fixnum#fxgcd (#(procedure #:clean) chicken.fixnum#fxgcd (fixnum fixnum) fixnum))
1308(chicken.fixnum#fx+ (#(procedure #:clean) chicken.fixnum#fx+ (fixnum fixnum) fixnum))
1309(chicken.fixnum#fx< (#(procedure #:clean) chicken.fixnum#fx< (fixnum fixnum) boolean))
1310(chicken.fixnum#fx<= (#(procedure #:clean) chicken.fixnum#fx<= (fixnum fixnum) boolean))
1311(chicken.fixnum#fx= (#(procedure #:clean) chicken.fixnum#fx= (fixnum fixnum) boolean))
1312(chicken.fixnum#fx> (#(procedure #:clean) chicken.fixnum#fx> (fixnum fixnum) boolean))
1313(chicken.fixnum#fx>= (#(procedure #:clean) chicken.fixnum#fx>= (fixnum fixnum) boolean))
1314(chicken.fixnum#fxand (#(procedure #:clean) chicken.fixnum#fxand (fixnum fixnum) fixnum))
1315(chicken.fixnum#fxeven? (#(procedure #:clean) chicken.fixnum#fxeven? (fixnum) boolean))
1316(chicken.fixnum#fxior (#(procedure #:clean) chicken.fixnum#fxior (fixnum fixnum) fixnum))
1317(chicken.fixnum#fxmax (#(procedure #:clean) chicken.fixnum#fxmax (fixnum fixnum) fixnum))
1318(chicken.fixnum#fxmin (#(procedure #:clean) chicken.fixnum#fxmin (fixnum fixnum) fixnum))
1319(chicken.fixnum#fxmod (#(procedure #:clean) chicken.fixnum#fxmod (fixnum fixnum) fixnum))
1320(chicken.fixnum#fxrem (#(procedure #:clean) chicken.fixnum#fxrem (fixnum fixnum) fixnum))
1321(chicken.fixnum#fxneg (#(procedure #:clean) chicken.fixnum#fxneg (fixnum) fixnum))
1322(chicken.fixnum#fxnot (#(procedure #:clean) chicken.fixnum#fxnot (fixnum) fixnum))
1323(chicken.fixnum#fxodd? (#(procedure #:clean) chicken.fixnum#fxodd? (fixnum) boolean))
1324(chicken.fixnum#fxshl (#(procedure #:clean) chicken.fixnum#fxshl (fixnum fixnum) fixnum))
1325(chicken.fixnum#fxshr (#(procedure #:clean) chicken.fixnum#fxshr (fixnum fixnum) fixnum))
1326(chicken.fixnum#fxxor (#(procedure #:clean) chicken.fixnum#fxxor (fixnum fixnum) fixnum))
1327(chicken.fixnum#fxlen (#(procedure #:clean) chicken.fixnum#fxlen (fixnum) fixnum))
1328
1329(chicken.fixnum#fx+? (#(procedure #:pure) chicken.fixnum#fx+? ((or fixnum false) (or fixnum false)) (or fixnum false)))
1330(chicken.fixnum#fx-? (#(procedure #:pure) chicken.fixnum#fx-? ((or fixnum false) (or fixnum false)) (or fixnum false)))
1331(chicken.fixnum#fx*? (#(procedure #:pure) chicken.fixnum#fx*? ((or fixnum false) (or fixnum false)) (or fixnum false)))
1332(chicken.fixnum#fx/? (#(procedure #:clean) chicken.fixnum#fx/? ((or fixnum false) (or fixnum false)) (or fixnum false)))
1333
1334;; keyword
1335
1336(chicken.keyword#get-keyword (#(procedure #:clean #:enforce) chicken.keyword#get-keyword (keyword list #!optional *) *))
1337(chicken.keyword#keyword->string (#(procedure #:clean #:enforce) chicken.keyword#keyword->string (keyword) string))
1338(chicken.keyword#keyword? (#(procedure #:pure #:predicate keyword) chicken.keyword#keyword? (*) boolean))
1339(chicken.keyword#string->keyword (#(procedure #:clean #:enforce) chicken.keyword#string->keyword (string) keyword))
1340
1341;; load
1342
1343(chicken.load#dynamic-load-libraries
1344 (#(procedure #:clean) chicken.load#dynamic-load-libraries (#!optional (list-of string)) (list-of string)))
1345(chicken.load#load-library (#(procedure #:enforce) chicken.load#load-library (symbol #!optional string) undefined))
1346(chicken.load#load-noisily (procedure chicken.load#load-noisily (string #!rest) undefined))
1347(chicken.load#load-relative (#(procedure #:enforce) chicken.load#load-relative (string #!optional (procedure (*) . *)) undefined))
1348(chicken.load#load-verbose (#(procedure #:clean) chicken.load#load-verbose (#!optional *) *))
1349(chicken.load#provide (#(procedure #:clean #:enforce) chicken.load#provide (#!rest symbol) undefined))
1350(chicken.load#provided? (#(procedure #:clean #:enforce) chicken.load#provided? (#!rest symbol) boolean))
1351(chicken.load#require (#(procedure #:clean) chicken.load#require (#!rest symbol) undefined))
1352(chicken.load#set-dynamic-load-mode! (#(procedure #:clean #:enforce) chicken.load#set-dynamic-load-mode! ((or symbol (list-of symbol))) undefined))
1353(chicken.load#find-file (#(procedure #:clean) chicken.load#find-file (string (or (list-of string) string)) (or string false)))
1354
1355;; platform
1356
1357(chicken.platform#build-platform (#(procedure #:pure) chicken.platform#build-platform () symbol))
1358(chicken.platform#chicken-version (#(procedure #:pure) chicken.platform#chicken-version (#!optional *) string))
1359(chicken.platform#chicken-home deprecated)
1360(chicken.platform#include-path (#(procedure #:clean) chicken.platform#include-path () string))
1361(chicken.platform#feature? (#(procedure #:clean) chicken.platform#feature? (#!rest (or keyword symbol string)) boolean))
1362(chicken.platform#features (#(procedure #:clean) chicken.platform#features () (list-of keyword)))
1363(chicken.platform#software-type (#(procedure #:pure) chicken.platform#software-type () symbol))
1364(chicken.platform#software-version (#(procedure #:pure) chicken.platform#software-version () symbol))
1365(chicken.platform#register-feature! (#(procedure #:clean #:enforce) chicken.platform#register-feature! (#!rest (or keyword symbol string)) undefined))
1366(chicken.platform#unregister-feature! (#(procedure #:clean #:enforce) chicken.platform#unregister-feature! (#!rest (or keyword symbol string)) undefined))
1367(chicken.platform#machine-byte-order (#(procedure #:pure) chicken.platform#machine-byte-order () symbol))
1368(chicken.platform#machine-type (#(procedure #:pure) chicken.platform#machine-type () symbol))
1369(chicken.platform#repository-path (#(procedure #:clean) chicken.platform#repository-path (#!optional *) *))
1370(chicken.platform#installation-repository (#(procedure #:clean) chicken.platform#installation-repository (#!optional *) *))
1371(chicken.platform#return-to-host (procedure chicken.platform#return-to-host () . *))
1372(chicken.platform#system-config-directory (#(procedure #:clean) chicken.platform#system-config-directory () (or string false)))
1373(chicken.platform#system-cache-directory (#(procedure #:clean) chicken.platform#system-cache-directory () (or string false)))
1374
1375;; plist
1376
1377(chicken.plist#get (#(procedure #:clean #:enforce) chicken.plist#get (symbol symbol #!optional *) *)
1378 ((symbol symbol *) (##core#inline "C_i_getprop" #(1) #(2) #(3))))
1379(chicken.plist#get-properties (#(procedure #:clean #:enforce) chicken.plist#get-properties (symbol list) symbol * list))
1380(chicken.plist#put! (#(procedure #:clean #:enforce) chicken.plist#put! (symbol symbol *) undefined)
1381 ((symbol symbol *)
1382 (##core#inline_allocate ("C_a_i_putprop" 8) #(1) #(2) #(3))))
1383(chicken.plist#remprop! (#(procedure #:clean #:enforce) chicken.plist#remprop! (symbol symbol) undefined))
1384(chicken.plist#symbol-plist (#(procedure #:clean #:enforce) chicken.plist#symbol-plist (symbol) list)
1385 ((symbol) (##sys#slot #(1) '2)))
1386
1387(chicken.flonum#maximum-flonum float)
1388(chicken.flonum#minimum-flonum float)
1389(chicken.fixnum#most-negative-fixnum fixnum)
1390(chicken.fixnum#most-positive-fixnum fixnum)
1391
1392;; gc
1393
1394(chicken.gc#current-gc-milliseconds (#(procedure #:clean) chicken.gc#current-gc-milliseconds () integer))
1395(chicken.gc#force-finalizers (procedure chicken.gc#force-finalizers () undefined))
1396(chicken.gc#gc (#(procedure #:clean) chicken.gc#gc (#!optional *) fixnum))
1397(chicken.gc#memory-statistics (#(procedure #:clean) chicken.gc#memory-statistics () (vector-of fixnum)))
1398(chicken.gc#set-finalizer! (#(procedure #:clean #:enforce) chicken.gc#set-finalizer! (* (procedure (*) . *)) *))
1399(chicken.gc#make-finalizer (#(procedure #:clean #:enforce) chicken.gc#make-finalizer (#!rest *) (procedure (#!optional boolean) *)))
1400(chicken.gc#add-to-finalizer (#(procedure #:clean #:enforce) chicken.gc#add-to-finalizer (procedure #!rest *) undefined))
1401(chicken.gc#set-gc-report! (#(procedure #:clean) chicken.gc#set-gc-report! (*) undefined))
1402
1403(chicken.repl#repl (#(procedure #:enforce) chicken.repl#repl (#!optional (procedure (*) . *)) undefined))
1404(chicken.repl#repl-prompt (#(procedure #:clean #:enforce) chicken.repl#repl-prompt (#!optional (procedure () string)) procedure))
1405(chicken.repl#reset (procedure chicken.repl#reset () noreturn))
1406(chicken.repl#reset-handler (#(procedure #:clean #:enforce) chicken.repl#reset-handler (#!optional (procedure () . *)) procedure))
1407(chicken.repl#quit (procedure chicken.repl#quit (#!optional *) noreturn))
1408
1409
1410(##sys#void (#(procedure #:pure) void (#!rest) undefined))
1411
1412;; chicken (internal)
1413
1414(##sys#foreign-char-argument (#(procedure #:clean #:enforce) ##sys#foreign-char-argument (char) char)
1415 ((char) #(1)))
1416(##sys#foreign-fixnum-argument (#(procedure #:clean #:enforce) ##sys#foreign-fixnum-argument (fixnum) fixnum)
1417 ((fixnum) #(1)))
1418(##sys#foreign-flonum-argument (#(procedure #:clean #:enforce) ##sys#foreign-flonum-argument (number) number)
1419 ((float) #(1)))
1420(##sys#foreign-string-argument (#(procedure #:clean #:enforce) ##sys#foreign-string-argument (string) string)
1421 ((string) #(1)))
1422(##sys#foreign-symbol-argument (#(procedure #:clean #:enforce) ##sys#foreign-symbol-argument (symbol) symbol)
1423 ((symbol) #(1)))
1424(##sys#foreign-pointer-argument (forall ((p (or locative pointer)))
1425 (#(procedure #:clean #:enforce) ##sys#foreign-pointer-argument (p) p))
1426 ((pointer) (pointer) #(1))
1427 ((locative) (locative) #(1)))
1428
1429(##sys#check-blob (#(procedure #:clean #:enforce) ##sys#check-blob (blob #!optional *) *)
1430 ((blob) (let ((#(tmp) #(1))) '#t))
1431 ((blob *) (let ((#(tmp) #(1))) '#t)))
1432(##sys#check-pair (#(procedure #:clean #:enforce) ##sys#check-pair (pair #!optional *) *)
1433 ((pair) (let ((#(tmp) #(1))) '#t))
1434 ((pair *) (let ((#(tmp) #(1))) '#t)))
1435(##sys#check-list (#(procedure #:clean #:enforce) ##sys#check-list (list #!optional *) *)
1436 (((or null pair list)) (let ((#(tmp) #(1))) '#t))
1437 (((or null pair list) *) (let ((#(tmp) #(1))) '#t)))
1438(##sys#check-string (#(procedure #:clean #:enforce) ##sys#check-string (string #!optional *) *)
1439 ((string) (let ((#(tmp) #(1))) '#t))
1440 ((string) * (let ((#(tmp) #(1))) '#t)))
1441(##sys#check-number (#(procedure #:clean #:enforce) ##sys#check-number (number #!optional *) *)
1442 ((number) (let ((#(tmp) #(1))) '#t))
1443 ((number *) (let ((#(tmp) #(1))) '#t)))
1444(##sys#check-exact (#(procedure #:clean #:enforce) ##sys#check-exact (fixnum #!optional *) *)
1445 ((fixnum) (let ((#(tmp) #(1))) '#t))
1446 ((fixnum *) (let ((#(tmp) #(1))) '#t)))
1447(##sys#check-inexact (#(procedure #:clean #:enforce) ##sys#check-inexact (float #!optional *) *)
1448 ((float) (let ((#(tmp) #(1))) '#t))
1449 ((float *) (let ((#(tmp) #(1))) '#t)))
1450(##sys#check-symbol (#(procedure #:clean #:enforce) ##sys#check-symbol (symbol #!optional *) *)
1451 ((symbol) (let ((#(tmp) #(1))) '#t))
1452 ((symbol *) (let ((#(tmp) #(1))) '#t)))
1453(##sys#check-vector (#(procedure #:clean #:enforce) ##sys#check-vector (vector #!optional *) *)
1454 ((vector) (let ((#(tmp) #(1))) '#t))
1455 ((vector *) (let ((#(tmp) #(1))) '#t)))
1456(##sys#check-char (#(procedure #:clean #:enforce) ##sys#check-char (char #!optional *) *)
1457 ((char) (let ((#(tmp) #(1))) '#t))
1458 ((char *) (let ((#(tmp) #(1))) '#t)))
1459(##sys#check-boolean (#(procedure #:clean #:enforce) ##sys#check-boolean (boolean #!optional *) *)
1460 ((boolean) (let ((#(tmp) #(1))) '#t))
1461 ((boolean *) (let ((#(tmp) #(1))) '#t)))
1462(##sys#check-locative (#(procedure #:clean #:enforce) ##sys#check-locative (locative #!optional *) *)
1463 ((locative) (let ((#(tmp) #(1))) '#t))
1464 ((locative *) (let ((#(tmp) #(1))) '#t)))
1465(##sys#check-closure (#(procedure #:clean #:enforce) ##sys#check-closure (procedure #!optional *) *)
1466 ((procedure) (let ((#(tmp) #(1))) '#t))
1467 ((procedure *) (let ((#(tmp) #(1))) '#t)))
1468(##sys#check-keyword (#(procedure #:clean #:enforce) ##sys#check-keyword (keyword #!optional *) *)
1469 ((keyword) (let ((#(tmp) #(1))) '#t))
1470 ((keyword *) (let ((#(tmp) #(1))) '#t)))
1471
1472(##sys#check-port
1473 (#(procedure #:clean #:enforce) ##sys#check-port ((or input-port output-port) #!optional *) *)
1474 (((or (refine (input) port) (refine (output) port))) (let ((#(tmp) #(1))) '#t))
1475 (((or (refine (input) port) (refine (output) port)) *) (let ((#(tmp) #(1))) '#t)))
1476
1477(##sys#check-input-port
1478 (#(procedure #:clean #:enforce) ##sys#check-input-port (input-port * #!optional *) *)
1479 ((* *) (##core#inline "C_i_check_port" #(1) '1 #(2)))
1480 ((* * *) (##core#inline "C_i_check_port_2" #(1) '1 #(2) #(3))))
1481
1482(##sys#check-output-port
1483 (#(procedure #:clean #:enforce) ##sys#check-output-port (output-port * #!optional *) *)
1484 ((* *) (##core#inline "C_i_check_port" #(1) '2 #(2)))
1485 ((* * *) (##core#inline "C_i_check_port_2" #(1) '2 #(2) #(3))))
1486
1487(##sys#check-open-port
1488 (#(procedure #:clean #:enforce) ##sys#check-open-port ((or input-port output-port) #!optional *) *)
1489 ((*) (##core#inline "C_i_check_port" #(1) '0 '#t))
1490 ((* *) (##core#inline "C_i_check_port_2" #(1) '0 '#t #(2))))
1491
1492(##sys#slot (#(procedure #:enforce) ##sys#slot (* fixnum) *))
1493
1494(##sys#setslot (#(procedure #:enforce) ##sys#setslot (* fixnum *) *)
1495 #;((* fixnum immediate) (##sys#setislot #(1) #(2) #(3)))) ; too dangerous
1496
1497(##sys#size (#(procedure #:pure #:foldable) ##sys#size (*) fixnum))
1498
1499(##sys#standard-input input-port)
1500(##sys#standard-output output-port)
1501(##sys#standard-error output-port)
1502
1503(##sys#provide (procedure ##sys#provide (symbol) boolean)
1504 ((symbol) (##core#inline_allocate ("C_a_i_provide" 8) #(1))))
1505
1506(##sys#provided? (procedure ##sys#provided? (symbol) boolean)
1507 ((symbol) (##core#inline "C_i_providedp" #(1))))
1508
1509;; string
1510
1511(chicken.string#->string (procedure chicken.string#->string (*) string)
1512 ((string) #(1)))
1513
1514(chicken.string#conc (procedure chicken.string#conc (#!rest) string))
1515
1516(chicken.string#string-chomp (#(procedure #:clean #:enforce) chicken.string#string-chomp (string #!optional string) string))
1517(chicken.string#string-chop (#(procedure #:clean #:enforce) chicken.string#string-chop (string fixnum) (list-of string)))
1518(chicken.string#string-compare3 (#(procedure #:clean #:enforce) chicken.string#string-compare3 (string string) fixnum))
1519(chicken.string#string-compare3-ci (#(procedure #:clean #:enforce) chicken.string#string-compare3-ci (string string) fixnum))
1520(chicken.string#string-intersperse (#(procedure #:clean #:enforce) chicken.string#string-intersperse ((list-of string) #!optional string) string))
1521(chicken.string#string-split (#(procedure #:clean #:enforce) chicken.string#string-split (string #!optional string *) (list-of string)))
1522(chicken.string#string-translate (#(procedure #:clean #:enforce) chicken.string#string-translate (string * #!optional *) string))
1523(chicken.string#string-translate* (#(procedure #:clean #:enforce) chicken.string#string-translate* (string (list-of (pair string string))) string))
1524
1525(chicken.string#substring=? (#(procedure #:clean #:enforce #:foldable) chicken.string#substring=? (string string #!optional fixnum fixnum fixnum) boolean))
1526(chicken.string#substring-ci=? (#(procedure #:clean #:enforce #:foldable) chicken.string#substring-ci=? (string string #!optional fixnum fixnum fixnum) boolean))
1527(chicken.string#substring-index (#(procedure #:clean #:enforce #:foldable) chicken.string#substring-index (string string #!optional fixnum) (or false fixnum))
1528 ((* *) (##sys#substring-index #(1) #(2) '0))
1529 ((* * *) (##sys#substring-index #(1) #(2) #(3))))
1530(chicken.string#substring-index-ci (#(procedure #:clean #:enforce #:foldable) chicken.string#substring-index-ci (string string #!optional fixnum) (or false fixnum))
1531 ((* *) (##sys#substring-index-ci #(1) #(2) '0))
1532 ((* * *) (##sys#substring-index-ci #(1) #(2) #(3))))
1533
1534(chicken.string#reverse-list->string (#(procedure #:clean #:enforce) chicken.string#reverse-list->string ((list-of char)) string))
1535(chicken.string#reverse-string-append (#(procedure #:clean #:enforce) chicken.string#reverse-string-append ((list-of string)) string))
1536
1537(##sys#substring-index
1538 (#(procedure #:clean #:enforce #:foldable) ##sys#substring-index
1539 (string string fixnum)
1540 (or false fixnum)))
1541
1542(##sys#substring-index-ci
1543 (#(procedure #:clean #:enforce #:foldable) ##sys#substring-index-ci
1544 (string string fixnum)
1545 (or false fixnum)))
1546
1547;; io
1548
1549(chicken.io#read-list (#(procedure #:enforce) chicken.io#read-list (#!optional input-port (procedure (input-port) *) fixnum) list))
1550(chicken.io#read-buffered (#(procedure #:enforce) chicken.io#read-buffered (#!optional input-port) string))
1551(chicken.io#read-byte (#(procedure #:enforce) chicken.io#read-byte (#!optional input-port) *))
1552(chicken.io#read-line (#(procedure #:enforce) chicken.io#read-line (#!optional input-port (or false fixnum)) (or eof string)))
1553(chicken.io#read-lines (#(procedure #:enforce) chicken.io#read-lines (#!optional input-port fixnum) (list-of string)))
1554(chicken.io#read-string (#(procedure #:enforce) chicken.io#read-string (#!optional (or fixnum false) input-port) (or string eof)))
1555(chicken.io#read-string! (#(procedure #:enforce) chicken.io#read-string! ((or fixnum false) string #!optional input-port fixnum) fixnum))
1556(chicken.io#read-token (#(procedure #:enforce) chicken.io#read-token ((procedure (char) *) #!optional input-port) string))
1557(chicken.io#write-byte (#(procedure #:enforce) chicken.io#write-byte (fixnum #!optional output-port) undefined))
1558(chicken.io#write-line (#(procedure #:enforce) chicken.io#write-line (string #!optional output-port) undefined))
1559(chicken.io#write-string (#(procedure #:enforce) chicken.io#write-string (string #!optional * output-port) undefined))
1560
1561;; pretty-print
1562
1563(chicken.pretty-print#pp (#(procedure #:enforce) chicken.pretty-print#pp (* #!optional output-port) undefined))
1564(chicken.pretty-print#pretty-print (#(procedure #:enforce) chicken.pretty-print#pretty-print (* #!optional output-port) undefined))
1565(chicken.pretty-print#pretty-print-width (#(procedure #:clean) chicken.pretty-print#pretty-print-width (#!optional fixnum) *))
1566
1567;; format
1568
1569(chicken.format#format (procedure chicken.format#format (#!rest) *))
1570(chicken.format#fprintf (#(procedure #:enforce) chicken.format#fprintf (output-port string #!rest) undefined))
1571(chicken.format#printf (#(procedure #:enforce) chicken.format#printf (string #!rest) undefined))
1572(chicken.format#sprintf (#(procedure #:enforce #:foldable) chicken.format#sprintf (string #!rest) string))
1573
1574;; random
1575
1576(chicken.random#pseudo-random-integer (#(procedure #:clean #:enforce) chicken.random#pseudo-random-integer (integer) integer)
1577 ((fixnum) (##core#inline "C_random_fixnum" #(1))))
1578(chicken.random#pseudo-random-real (#(procedure #:clean #:enforce) chicken.random#pseudo-random-real () float))
1579(chicken.random#set-pseudo-random-seed! (#(procedure #:clean #:enforce) chicken.random#set-pseudo-random-seed! ((or blob string) #!optional fixnum) undefined))
1580(chicken.random#random-bytes (#(procedure #:clean #:enforce) chicken.random#random-bytes (#!optional * fixnum) *))
1581
1582;; file
1583
1584(chicken.file#directory (#(procedure #:clean #:enforce) chicken.file#directory (#!optional string *) (list-of string)))
1585(chicken.file#create-directory (#(procedure #:clean #:enforce) chicken.file#create-directory (string #!optional *) string))
1586(chicken.file#create-temporary-directory (#(procedure #:clean #:enforce) chicken.file#create-temporary-directory () string))
1587(chicken.file#create-temporary-file (#(procedure #:clean #:enforce) chicken.file#create-temporary-file (#!optional string) string))
1588(chicken.file#delete-directory (#(procedure #:clean #:enforce) chicken.file#delete-directory (string #!optional *) string))
1589(chicken.file#delete-file (#(procedure #:clean #:enforce) chicken.file#delete-file (string) string))
1590(chicken.file#delete-file* (#(procedure #:clean #:enforce) chicken.file#delete-file* (string) *))
1591(chicken.file#directory-exists? (#(procedure #:clean #:enforce) chicken.file#directory-exists? (string) (or false string)))
1592(chicken.file#file-exists? (#(procedure #:clean #:enforce) chicken.file#file-exists? (string) (or false string)))
1593(chicken.file#find-files (#(procedure #:enforce) chicken.file#find-files (string #!rest) list))
1594(chicken.file#glob (#(procedure #:clean #:enforce) chicken.file#glob (#!rest string) list))
1595(chicken.file#copy-file (#(procedure #:clean #:enforce) chicken.file#copy-file (string string #!optional * fixnum) fixnum))
1596(chicken.file#move-file (#(procedure #:clean #:enforce) chicken.file#move-file (string string #!optional * fixnum) fixnum))
1597(chicken.file#rename-file (#(procedure #:clean #:enforce) chicken.file#rename-file (string string #!optional *) string))
1598(chicken.file#file-readable? (#(procedure #:clean #:enforce) chicken.file#file-readable? (string) boolean))
1599(chicken.file#file-writable? (#(procedure #:clean #:enforce) chicken.file#file-writable? (string) boolean))
1600(chicken.file#file-executable? (#(procedure #:clean #:enforce) chicken.file#file-executable? (string) boolean))
1601
1602
1603;; pathname
1604
1605(chicken.pathname#absolute-pathname? (#(procedure #:clean #:enforce) chicken.pathname#absolute-pathname? (string) boolean))
1606(chicken.pathname#decompose-directory (#(procedure #:clean #:enforce) chicken.pathname#decompose-directory (string) * * *))
1607(chicken.pathname#decompose-pathname (#(procedure #:clean #:enforce) chicken.pathname#decompose-pathname (string) * * *))
1608(chicken.pathname#directory-null? (#(procedure #:clean #:enforce) chicken.pathname#directory-null? (string) boolean))
1609(chicken.pathname#make-absolute-pathname (#(procedure #:clean #:enforce) chicken.pathname#make-absolute-pathname ((or string (list-of string) false) #!optional (or string false) (or string false)) string))
1610(chicken.pathname#make-pathname (#(procedure #:clean #:enforce) chicken.pathname#make-pathname ((or string (list-of string) false) #!optional (or string false) (or string false)) string))
1611(chicken.pathname#normalize-pathname (#(procedure #:clean #:enforce) chicken.pathname#normalize-pathname (string #!optional symbol) string))
1612(chicken.pathname#pathname-directory (#(procedure #:clean #:enforce) chicken.pathname#pathname-directory (string) *))
1613(chicken.pathname#pathname-extension (#(procedure #:clean #:enforce) chicken.pathname#pathname-extension (string) *))
1614(chicken.pathname#pathname-file (#(procedure #:clean #:enforce) chicken.pathname#pathname-file (string) *))
1615(chicken.pathname#pathname-replace-directory (#(procedure #:clean #:enforce) chicken.pathname#pathname-replace-directory (string string) string))
1616(chicken.pathname#pathname-replace-extension (#(procedure #:clean #:enforce) chicken.pathname#pathname-replace-extension (string string) string))
1617(chicken.pathname#pathname-replace-file (#(procedure #:clean #:enforce) chicken.pathname#pathname-replace-file (string string) string))
1618(chicken.pathname#pathname-strip-directory (#(procedure #:clean #:enforce) chicken.pathname#pathname-strip-directory (string) string))
1619(chicken.pathname#pathname-strip-extension (#(procedure #:clean #:enforce) chicken.pathname#pathname-strip-extension (string) string))
1620
1621;; irregex
1622
1623(chicken.irregex#irregex (#(procedure #:clean) chicken.irregex#irregex (#!rest) (struct regexp)))
1624
1625;; Both of these DFA accessors return either #f or a DFA vector.
1626;; TODO: Should we spec out the entire DFA type layout? It's plenty complex, so we don't
1627;; want to be specifying this for all procedures accepting a DFA!
1628;; A DFA looks like a vector of lists;
1629;; the car of each list is a number (for init-state), false or an alist;
1630;; the cdr is a list of alists, which contains a char (or vector) and two alists
1631;; These alists have types themselves, of course...
1632(chicken.irregex#irregex-dfa (#(procedure #:clean #:enforce) chicken.irregex#irregex-dfa ((struct regexp)) (or false vector))
1633 (((struct regexp)) (##sys#slot #(1) '1)))
1634
1635(chicken.irregex#irregex-dfa/search (#(procedure #:clean #:enforce) chicken.irregex#irregex-dfa/search ((struct regexp)) (or false vector))
1636 (((struct regexp)) (##sys#slot #(1) '2)))
1637
1638;; Procedure type returned by irregex-nfa is a matcher type (it is misnamed)
1639;; which is another complex procedure type.
1640(chicken.irregex#irregex-nfa (#(procedure #:clean #:enforce) chicken.irregex#irregex-nfa ((struct regexp)) (or false procedure))
1641 (((struct regexp)) (##sys#slot #(1) '3)))
1642
1643(chicken.irregex#irregex-flags (#(procedure #:clean #:enforce) chicken.irregex#irregex-flags ((struct regexp)) fixnum)
1644 (((struct regexp)) (##sys#slot #(1) '4)))
1645
1646(chicken.irregex#irregex-num-submatches (#(procedure #:clean #:enforce) chicken.irregex#irregex-num-submatches ((struct regexp))
1647 fixnum)
1648 (((struct regexp)) (##sys#slot #(1) '5)))
1649
1650(chicken.irregex#irregex-lengths (#(procedure #:clean #:enforce) chicken.irregex#irregex-lengths ((struct regexp))
1651 (vector-of (or false pair)))
1652 (((struct regexp)) (##sys#slot #(1) '6)))
1653
1654;; XXX: Submatch names ought to be symbols according to the docs, but this is
1655;; not enforced anywhere, so we can't assume it in the return type here.
1656(chicken.irregex#irregex-names (#(procedure #:clean #:enforce) chicken.irregex#irregex-names ((struct regexp))
1657 (list-of (pair * fixnum)))
1658 (((struct regexp)) (##sys#slot #(1) '7)))
1659
1660;; XXX: specialize these? (how?)
1661(chicken.irregex#irregex-extract (#(procedure #:clean #:enforce) chicken.irregex#irregex-extract (* string #!optional fixnum fixnum)
1662 (list-of string)))
1663(chicken.irregex#irregex-split (#(procedure #:clean #:enforce) chicken.irregex#irregex-split (* string #!optional fixnum fixnum)
1664 (list-of string)))
1665
1666(chicken.irregex#irregex-fold (forall (a) (#(procedure #:enforce) chicken.irregex#irregex-fold (* (procedure (fixnum (struct regexp-match) a) a) a string #!optional (procedure (fixnum *) *) fixnum fixnum) a)))
1667;; XXX TODO: chunker is a plain vector
1668(chicken.irregex#irregex-fold/chunked (forall (a c) (#(procedure #:enforce) chicken.irregex#irregex-fold/chunked (* (procedure (c fixnum (struct regexp-match) a) a) a vector c #!optional (procedure (c fixnum a) a) fixnum fixnum) a)))
1669(chicken.irregex#irregex-reset-matches! (procedure chicken.irregex#irregex-reset-matches! ((struct regexp-match))
1670 (struct regexp-match)))
1671
1672;; A silly procedure, but at least we can "inline" it like this
1673(chicken.irregex#irregex-match? (#(procedure #:clean #:enforce) chicken.irregex#irregex-match? (* string #!optional fixnum fixnum) boolean)
1674 ((* string) (if (chicken.irregex#irregex-match #(1) #(2)) '#t '#f))
1675 ((* string fixnum) (if (chicken.irregex#irregex-match #(1) #(2) #(3)) '#t '#f))
1676 ((* string fixnum fixnum) (if (chicken.irregex#irregex-match #(1) #(2) #(3) #(4)) '#t '#f)))
1677;; These two return #f or a match object
1678(chicken.irregex#irregex-match (#(procedure #:clean #:enforce) chicken.irregex#irregex-match (* string #!optional fixnum fixnum)
1679 (or false (struct regexp-match))))
1680;; XXX chunker is a plain vector
1681;; Not marked clean because we don't know what chunker procedures will do
1682(chicken.irregex#irregex-match/chunked (#(procedure #:enforce) chicken.irregex#irregex-match/chunked (* vector * #!optional fixnum)
1683 (or false (struct regexp-match))))
1684
1685(chicken.irregex#irregex-match-data? (#(procedure #:pure #:predicate (struct regexp-match)) chicken.irregex#irregex-match-data? (*) boolean))
1686
1687(chicken.irregex#irregex-match-end-index (#(procedure #:clean #:enforce) chicken.irregex#irregex-match-end-index ((struct regexp-match) #!optional *) fixnum))
1688(chicken.irregex#irregex-match-end-chunk (#(procedure #:clean #:enforce) chicken.irregex#irregex-match-end-chunk ((struct regexp-match) #!optional *) *))
1689(chicken.irregex#irregex-match-start-index (#(procedure #:clean #:enforce) chicken.irregex#irregex-match-start-index ((struct regexp-match) #!optional *) fixnum))
1690(chicken.irregex#irregex-match-start-chunk (#(procedure #:clean #:enforce) chicken.irregex#irregex-match-start-chunk ((struct regexp-match) #!optional *) *))
1691(chicken.irregex#irregex-match-substring (#(procedure #:clean #:enforce) chicken.irregex#irregex-match-substring ((struct regexp-match) #!optional *) *))
1692(chicken.irregex#irregex-match-subchunk (#(procedure #:clean #:enforce) chicken.irregex#irregex-match-subchunk ((struct regexp-match) #!optional *) *))
1693
1694(chicken.irregex#irregex-match-names (#(procedure #:clean #:enforce) chicken.irregex#irregex-match-names ((struct regexp-match)) list)
1695 (((struct regexp-match)) (##sys#slot #(1) '2)))
1696
1697(chicken.irregex#irregex-match-num-submatches (#(procedure #:enforce) chicken.irregex#irregex-match-num-submatches ((struct regexp-match)) fixnum)
1698 (((struct regexp-match))
1699 (chicken.fixnum#fx- (chicken.fixnum#fx/ (##sys#size (##sys#slot #(1) '1)) '4) '2)))
1700
1701(chicken.irregex#irregex-new-matches (procedure chicken.irregex#irregex-new-matches (*) *)) ; really only for internal use..
1702(chicken.irregex#irregex-opt (#(procedure #:clean #:enforce) chicken.irregex#irregex-opt (list) *))
1703(chicken.irregex#irregex-quote (#(procedure #:clean #:enforce) chicken.irregex#irregex-quote (string) string))
1704
1705(chicken.irregex#irregex-replace (#(procedure #:enforce) chicken.irregex#irregex-replace (* string #!rest) string))
1706(chicken.irregex#irregex-replace/all (#(procedure #:enforce) chicken.irregex#irregex-replace/all (* string #!rest) string))
1707;; Returns a list of strings, but *only* when all user-procedures do
1708(chicken.irregex#irregex-apply-match (procedure ((struct regexp-match) list) list)) ; internal use
1709
1710;; These return #f or a match object
1711(chicken.irregex#irregex-search (#(procedure #:clean #:enforce) chicken.irregex#irregex-search (* string #!optional fixnum fixnum)
1712 (or false (struct regexp-match))))
1713;; XXX chunker is a plain vector
1714(chicken.irregex#irregex-search/chunked (#(procedure #:enforce) chicken.irregex#irregex-search/chunked (* vector * #!optional fixnum *)
1715 (or false (struct regexp-match))))
1716(chicken.irregex#irregex-search/matches (#(procedure #:enforce) chicken.irregex#irregex-search/matches (* vector * * fixnum (struct regexp-match))
1717 (or false (struct regexp-match))))
1718(chicken.irregex#irregex-match-valid-index?
1719 (#(procedure #:clean #:enforce) chicken.irregex#irregex-match-valid-index? ((struct regexp-match) *) boolean))
1720
1721(chicken.irregex#irregex? (#(procedure #:pure #:predicate (struct regexp)) chicken.irregex#irregex? (*) boolean))
1722
1723(chicken.irregex#make-irregex-chunker
1724 (#(procedure #:enforce) chicken.irregex#make-irregex-chunker
1725 ((procedure (*) *)
1726 (procedure (*) *)
1727 #!optional
1728 (procedure (*) *)
1729 (procedure (*) *)
1730 (procedure (* fixnum * fixnum) string)
1731 (procedure (* fixnum * fixnum) *))
1732 *))
1733(chicken.irregex#maybe-string->sre (#(procedure #:clean) chicken.irregex#maybe-string->sre (*) *))
1734(chicken.irregex#sre->irregex (#(procedure #:clean) chicken.irregex#sre->irregex (#!rest) *))
1735(chicken.irregex#string->irregex (#(procedure #:clean #:enforce) chicken.irregex#string->irregex (string #!rest) *))
1736(chicken.irregex#string->sre (#(procedure #:clean #:enforce) chicken.irregex#string->sre (string #!rest) *))
1737(chicken.irregex#glob->sre (#(procedure #:clean #:enforce) chicken.irregex#glob->sre (string) (pair symbol *)))
1738
1739
1740;; memory
1741
1742(chicken.memory#allocate (#(procedure #:clean #:enforce) chicken.memory#allocate (fixnum) (or false pointer)))
1743(chicken.memory#free (#(procedure #:clean #:enforce) chicken.memory#free (pointer) undefined))
1744
1745(chicken.memory#address->pointer (#(procedure #:clean #:enforce) chicken.memory#address->pointer (fixnum) pointer)
1746 ((fixnum) (##sys#address->pointer #(1))))
1747
1748(chicken.memory#pointer->address (#(procedure #:clean #:enforce) chicken.memory#pointer->address ((or pointer procedure port locative)) integer)
1749 ((pointer) (##sys#pointer->address #(1))))
1750
1751(chicken.memory#align-to-word (#(procedure #:clean) chicken.memory#align-to-word ((or number pointer locative procedure port)) (or pointer number)))
1752
1753(chicken.memory#move-memory! (#(procedure #:enforce) chicken.memory#move-memory! (* * #!optional fixnum fixnum fixnum) *))
1754
1755(chicken.memory#object->pointer (#(procedure #:clean) chicken.memory#object->pointer (*) *))
1756(chicken.memory#pointer->object (#(procedure #:clean #:enforce) chicken.memory#pointer->object (pointer) *)
1757 ((pointer) (##core#inline "C_pointer_to_object" #(1))))
1758
1759(chicken.memory#pointer+ (#(procedure #:clean #:enforce) chicken.memory#pointer+ ((or pointer procedure port locative) fixnum) pointer))
1760(chicken.memory#pointer? (#(procedure #:clean #:predicate pointer) chicken.memory#pointer? (*) boolean))
1761(chicken.memory#pointer=? (#(procedure #:clean #:enforce) chicken.memory#pointer=? ((or pointer locative procedure port)
1762 (or pointer locative procedure port)) boolean)
1763 ((pointer pointer) (##core#inline "C_pointer_eqp" #(1) #(2))))
1764(chicken.memory#pointer-like? (#(procedure #:pure #:predicate (or pointer locative procedure port)) chicken.memory#pointer-like? (*) boolean)
1765 (((or pointer locative procedure port)) (let ((#(tmp) #(1))) '#t)))
1766
1767(chicken.memory#make-pointer-vector (#(procedure #:clean #:enforce) chicken.memory#make-pointer-vector (fixnum #!optional (or pointer false)) pointer-vector))
1768(chicken.memory#pointer-vector (#(procedure #:clean #:enforce) chicken.memory#pointer-vector (#!rest pointer-vector) boolean))
1769(chicken.memory#pointer-vector? (#(procedure #:pure #:predicate pointer-vector) chicken.memory#pointer-vector? (*) boolean))
1770(chicken.memory#pointer-vector-ref (#(procedure #:clean #:enforce) chicken.memory#pointer-vector-ref (pointer-vector fixnum) (or pointer false)))
1771(chicken.memory#pointer-vector-set! (#(procedure #:clean #:enforce) chicken.memory#pointer-vector-set! (pointer-vector fixnum (or pointer false)) undefined))
1772(chicken.memory#pointer-vector-fill! (#(procedure #:clean #:enforce) chicken.memory#pointer-vector-fill! (pointer-vector (or pointer false)) undefined))
1773(chicken.memory#pointer-vector-length (#(procedure #:clean #:enforce) chicken.memory#pointer-vector-length (pointer-vector) fixnum)
1774 ((pointer-vector) (##sys#slot #(1) '1)))
1775
1776(chicken.memory#pointer-f32-ref (#(procedure #:clean #:enforce) chicken.memory#pointer-f32-ref (pointer) number))
1777(chicken.memory#pointer-f32-set! (#(procedure #:clean #:enforce) chicken.memory#pointer-f32-set! (pointer number) undefined))
1778(chicken.memory#pointer-f64-ref (#(procedure #:clean #:enforce) chicken.memory#pointer-f64-ref (pointer) number))
1779(chicken.memory#pointer-f64-set! (#(procedure #:clean #:enforce) chicken.memory#pointer-f64-set! (pointer number) undefined))
1780
1781(chicken.memory#pointer-s16-ref (#(procedure #:clean #:enforce) chicken.memory#pointer-s16-ref (pointer) fixnum))
1782(chicken.memory#pointer-s16-set! (#(procedure #:clean #:enforce) chicken.memory#pointer-s16-set! (pointer fixnum) undefined))
1783(chicken.memory#pointer-s32-ref (#(procedure #:clean #:enforce) chicken.memory#pointer-s32-ref (pointer) integer))
1784(chicken.memory#pointer-s32-set! (#(procedure #:clean #:enforce) chicken.memory#pointer-s32-set! (pointer integer) undefined))
1785(chicken.memory#pointer-s64-ref (#(procedure #:clean #:enforce) chicken.memory#pointer-s64-ref (pointer) integer))
1786(chicken.memory#pointer-s64-set! (#(procedure #:clean #:enforce) chicken.memory#pointer-s64-set! (pointer integer) undefined))
1787(chicken.memory#pointer-s8-ref (#(procedure #:clean #:enforce) chicken.memory#pointer-s8-ref (pointer) fixnum))
1788(chicken.memory#pointer-s8-set! (#(procedure #:clean #:enforce) chicken.memory#pointer-s8-set! (pointer fixnum) undefined))
1789
1790(chicken.memory#pointer-u16-ref (#(procedure #:clean #:enforce) chicken.memory#pointer-u16-ref (pointer) fixnum))
1791(chicken.memory#pointer-u16-set! (#(procedure #:clean #:enforce) chicken.memory#pointer-u16-set! (pointer fixnum) undefined))
1792(chicken.memory#pointer-u32-ref (#(procedure #:clean #:enforce) chicken.memory#pointer-u32-ref (pointer) integer))
1793(chicken.memory#pointer-u32-set! (#(procedure #:clean #:enforce) chicken.memory#pointer-u32-set! (pointer integer) undefined))
1794(chicken.memory#pointer-u64-ref (#(procedure #:clean #:enforce) chicken.memory#pointer-u64-ref (pointer) integer))
1795(chicken.memory#pointer-u64-set! (#(procedure #:clean #:enforce) chicken.memory#pointer-u64-set! (pointer integer) undefined))
1796(chicken.memory#pointer-u8-ref (#(procedure #:clean #:enforce) chicken.memory#pointer-u8-ref (pointer) fixnum))
1797(chicken.memory#pointer-u8-set! (#(procedure #:clean #:enforce) chicken.memory#pointer-u8-set! (pointer fixnum) undefined))
1798
1799(chicken.memory#tag-pointer (#(procedure #:clean #:enforce) chicken.memory#tag-pointer (pointer *) pointer))
1800(chicken.memory#tagged-pointer? (#(procedure #:clean #:enforce) chicken.memory#tagged-pointer? (* #!optional *) boolean))
1801(chicken.memory#pointer-tag (#(procedure #:clean #:enforce) chicken.memory#pointer-tag ((or pointer locative procedure port)) *)
1802 (((or locative procedure port)) (let ((#(tmp) #(1))) '#f)))
1803
1804
1805;; memory.representation
1806
1807(chicken.memory.representation#block-ref (#(procedure #:clean #:enforce) chicken.memory.representation#block-ref (* fixnum) *))
1808(chicken.memory.representation#block-set! (#(procedure #:enforce) chicken.memory.representation#block-set! (* fixnum *) *))
1809(chicken.memory.representation#extend-procedure (#(procedure #:clean #:enforce) chicken.memory.representation#extend-procedure (procedure *) procedure))
1810(chicken.memory.representation#extended-procedure? (#(procedure #:clean) chicken.memory.representation#extended-procedure (*) boolean))
1811
1812(chicken.memory.representation#mutate-procedure!
1813 (#(procedure #:enforce) chicken.memory.representation#mutate-procedure! (procedure (procedure (procedure) . *)) procedure))
1814
1815(chicken.memory.representation#number-of-bytes (#(procedure #:clean) chicken.memory.representation#number-of-bytes (*) fixnum)
1816 (((or blob string)) (##sys#size #(1)))
1817 (((or port procedure symbol keyword pair vector locative float pointer-vector))
1818 ;; would be applicable to all structure types, but we can't specify
1819 ;; "(struct *)" (yet)
1820 (##core#inline "C_bytes" (##sys#size #(1)))))
1821
1822(chicken.memory.representation#number-of-slots (#(procedure #:clean #:foldable) chicken.memory.representation#number-of-slots (*) fixnum)
1823 (((or vector symbol keyword pair)) (##sys#size #(1))))
1824
1825(chicken.memory.representation#object-become! (procedure chicken.memory.representation#object-become! (list) *))
1826(chicken.memory.representation#object-copy (#(procedure #:clean) chicken.memory.representation#object-copy (*) *))
1827(chicken.memory.representation#procedure-data (#(procedure #:clean #:enforce) chicken.memory.representation#procedure-data (procedure) *))
1828(chicken.memory.representation#record->vector (#(procedure #:clean) chicken.memory.representation#record->vector (*) vector))
1829
1830(chicken.memory.representation#make-record-instance (#(procedure #:clean) chicken.memory.representation#make-record-instance (symbol #!rest) *))
1831(chicken.memory.representation#record-instance? (#(procedure #:clean) chicken.memory.representation#record-instance? (* #!optional symbol) boolean)
1832 ((* symbol) (##sys#structure? #(1) #(2)))
1833 ((*) (let ((#(tmp) #(1)))
1834 (if (##sys#immediate? #(tmp))
1835 '#f
1836 (##sys#generic-structure? #(tmp))))))
1837
1838(chicken.memory.representation#record-instance-length (#(procedure #:clean) chicken.memory.representation#record-instance-length (*) fixnum))
1839(chicken.memory.representation#record-instance-slot (#(procedure #:clean #:enforce) chicken.memory.representation#record-instance-slot (* fixnum) *))
1840(chicken.memory.representation#record-instance-slot-set! (#(procedure #:clean #:enforce) chicken.memory.representation#record-instance-slot-set! (* fixnum *) undefined))
1841(chicken.memory.representation#record-instance-type (#(procedure #:clean) chicken.memory.representation#record-instance-type (*) *))
1842(chicken.memory.representation#set-procedure-data! (#(procedure #:clean #:enforce) chicken.memory.representation#set-procedure-data! (procedure *) undefined))
1843
1844;; locative
1845
1846(chicken.locative#locative-index (#(procedure #:clean #:enforce) chicken.locative#locative-index (locative) fixnum))
1847(chicken.locative#locative->object (#(procedure #:clean #:enforce) chicken.locative#locative->object (locative) *))
1848(chicken.locative#locative-ref (#(procedure #:clean #:enforce) chicken.locative#locative-ref (locative) *)
1849 ((locative) (##core#inline_allocate ("C_a_i_locative_ref" 6) #(1))))
1850(chicken.locative#locative-set! (#(procedure #:enforce) chicken.locative#locative-set! (locative *) *))
1851(chicken.locative#locative? (#(procedure #:pure #:predicate locative) chicken.locative#locative? (*) boolean))
1852(chicken.locative#make-locative (#(procedure #:clean #:enforce) chicken.locative#make-locative (* #!optional fixnum) locative))
1853(chicken.locative#make-weak-locative (#(procedure #:clean #:enforce) chicken.locative#make-weak-locative (* #!optional fixnum) locative))
1854
1855;; port
1856
1857(chicken.port#call-with-input-string (#(procedure #:enforce) chicken.port#call-with-input-string (string (procedure (input-port) . *)) . *))
1858(chicken.port#call-with-output-string (#(procedure #:enforce) chicken.port#call-with-output-string ((procedure (output-port) . *)) string))
1859(chicken.port#copy-port (#(procedure #:enforce) chicken.port#copy-port (* * #!optional (procedure (*) *) (procedure (* output-port) *)) undefined))
1860(chicken.port#make-input-port (#(procedure #:clean #:enforce) chicken.port#make-input-port ((procedure () (or char eof)) (procedure () *) (procedure () . *) #!optional * * * *) input-port))
1861(chicken.port#make-output-port (#(procedure #:clean #:enforce) chicken.port#make-output-port ((procedure (string) . *) (procedure () . *) #!optional (procedure () . *)) output-port))
1862(chicken.port#port-for-each (#(procedure #:enforce) chicken.port#port-for-each ((procedure (*) *) (procedure () . *)) undefined))
1863
1864(chicken.port#port-map
1865 (forall (a b) (#(procedure #:enforce) chicken.port#port-map ((procedure (a) b) (procedure () a)) (list-of b))))
1866
1867(chicken.port#port-fold (#(procedure #:enforce) chicken.port#port-fold ((procedure (* *) *) * (procedure () *)) *))
1868(chicken.port#port-position (#(procedure #:clean #:enforce) chicken.port#port-position (#!optional port) fixnum fixnum))
1869(chicken.port#make-bidirectional-port (#(procedure #:clean #:enforce) chicken.port#make-bidirectional-port (input-port output-port) (refine (input output) port)))
1870(chicken.port#make-broadcast-port (#(procedure #:clean #:enforce) chicken.port#make-broadcast-port (#!rest output-port) output-port))
1871(chicken.port#make-concatenated-port (#(procedure #:clean #:enforce) chicken.port#make-concatenated-port (port #!rest input-port) input-port))
1872(chicken.port#set-buffering-mode! (#(procedure #:clean #:enforce) chicken.port#set-buffering-mode! (port keyword #!optional fixnum) undefined))
1873(chicken.port#with-error-output-to-port (#(procedure #:enforce) chicken.port#with-error-output-to-port (output-port (procedure () . *)) . *))
1874(chicken.port#with-input-from-port (#(procedure #:enforce) chicken.port#with-input-from-port (input-port (procedure () . *)) . *))
1875(chicken.port#with-input-from-string (#(procedure #:enforce) chicken.port#with-input-from-string (string (procedure () . *)) . *))
1876(chicken.port#with-output-to-port (#(procedure #:enforce) chicken.port#with-output-to-port (output-port (procedure () . *)) . *))
1877(chicken.port#with-output-to-string (#(procedure #:enforce) chicken.port#with-output-to-string ((procedure () . *)) string))
1878(chicken.port#with-error-output-to-string (#(procedure #:enforce) chicken.port#with-error-output-to-string ((procedure () . *)) string))
1879
1880(chicken.port#port-name
1881 (#(procedure #:clean #:enforce) chicken.port#port-name (#!optional port) *)
1882 ((port) (##sys#slot #(1) '3)))
1883
1884(chicken.port#set-port-name!
1885 (#(procedure #:clean #:enforce) chicken.port#set-port-name! (port string) undefined)
1886 ((port string) (##sys#setslot #(1) '3 #(2))))
1887
1888(chicken.port#terminal-name (#(procedure #:clean #:enforce) chicken.port#terminal-name (port) string))
1889(chicken.port#terminal-port? (#(procedure #:clean #:enforce) chicken.port#terminal-port? (port) boolean))
1890(chicken.port#terminal-size (#(procedure #:clean #:enforce) chicken.port#terminal-size (port) fixnum fixnum))
1891
1892;; errno
1893
1894(chicken.errno#errno (#(procedure #:clean) chicken.errno#errno () fixnum))
1895(chicken.errno#errno/2big fixnum)
1896(chicken.errno#errno/acces fixnum)
1897(chicken.errno#errno/again fixnum)
1898(chicken.errno#errno/badf fixnum)
1899(chicken.errno#errno/busy fixnum)
1900(chicken.errno#errno/child fixnum)
1901(chicken.errno#errno/deadlk fixnum)
1902(chicken.errno#errno/dom fixnum)
1903(chicken.errno#errno/exist fixnum)
1904(chicken.errno#errno/fault fixnum)
1905(chicken.errno#errno/fbig fixnum)
1906(chicken.errno#errno/ilseq fixnum)
1907(chicken.errno#errno/intr fixnum)
1908(chicken.errno#errno/inval fixnum)
1909(chicken.errno#errno/io fixnum)
1910(chicken.errno#errno/isdir fixnum)
1911(chicken.errno#errno/mfile fixnum)
1912(chicken.errno#errno/mlink fixnum)
1913(chicken.errno#errno/nametoolong fixnum)
1914(chicken.errno#errno/nfile fixnum)
1915(chicken.errno#errno/nodev fixnum)
1916(chicken.errno#errno/noent fixnum)
1917(chicken.errno#errno/noexec fixnum)
1918(chicken.errno#errno/nolck fixnum)
1919(chicken.errno#errno/nomem fixnum)
1920(chicken.errno#errno/nospc fixnum)
1921(chicken.errno#errno/nosys fixnum)
1922(chicken.errno#errno/notdir fixnum)
1923(chicken.errno#errno/notempty fixnum)
1924(chicken.errno#errno/notty fixnum)
1925(chicken.errno#errno/nxio fixnum)
1926(chicken.errno#errno/perm fixnum)
1927(chicken.errno#errno/pipe fixnum)
1928(chicken.errno#errno/range fixnum)
1929(chicken.errno#errno/rofs fixnum)
1930(chicken.errno#errno/spipe fixnum)
1931(chicken.errno#errno/srch fixnum)
1932(chicken.errno#errno/wouldblock fixnum)
1933(chicken.errno#errno/xdev fixnum)
1934
1935;; process-context
1936
1937(chicken.process-context#argc+argv (#(procedure #:clean) chicken.process-context#argc+argv () fixnum pointer))
1938(chicken.process-context#argv (#(procedure #:clean) chicken.process-context#argv () (list-of string)))
1939(chicken.process-context#change-directory (#(procedure #:clean #:enforce) chicken.process-context#change-directory (string) string))
1940(chicken.process-context#command-line-arguments (#(procedure #:clean) chicken.process-context#command-line-arguments (#!optional (list-of string)) (list-of string)))
1941(chicken.process-context#current-directory (#(procedure #:clean #:enforce) chicken.process-context#current-directory () string))
1942(chicken.process-context#executable-pathname (#(procedure #:pure) chicken.process-context#executable-pathname () (or string false)))
1943(chicken.process-context#get-environment-variable (#(procedure #:clean #:enforce) chicken.process-context#get-environment-variable (string) *))
1944(chicken.process-context#get-environment-variables (#(procedure #:clean) chicken.process-context#get-environment-variables () (list-of (pair string string))))
1945(chicken.process-context#program-name (#(procedure #:clean #:enforce) chicken.process-context#program-name (#!optional string) string))
1946(chicken.process-context#set-environment-variable! (#(procedure #:clean #:enforce) chicken.process-context#set-environment-variable! (string string) undefined))
1947(chicken.process-context#unset-environment-variable! (#(procedure #:clean #:enforce) chicken.process-context#unset-environment-variable! (string) undefined))
1948
1949;; process-context.posix
1950
1951(chicken.process-context.posix#change-directory* (#(procedure #:clean #:enforce) chicken.process-context.posix#change-directory* (fixnum) fixnum))
1952(chicken.process-context.posix#create-session (#(procedure #:clean) chicken.process-context.posix#create-session () fixnum))
1953
1954(chicken.process-context.posix#current-effective-group-id (#(procedure #:clean) chicken.process-context.posix#current-effective-group-id () fixnum))
1955(chicken.process-context.posix#current-effective-user-id (#(procedure #:clean) chicken.process-context.posix#current-effective-user-id () fixnum))
1956(chicken.process-context.posix#current-effective-user-name (#(procedure #:clean) chicken.process-context.posix#current-effective-user-name () string))
1957(chicken.process-context.posix#current-group-id (#(procedure #:clean) chicken.process-context.posix#current-group-id () fixnum))
1958(chicken.process-context.posix#current-user-id (#(procedure #:clean) chicken.process-context.posix#current-user-id () fixnum))
1959(chicken.process-context.posix#current-user-name (#(procedure #:clean) chicken.process-context.posix#current-user-name () string))
1960(chicken.process-context.posix#current-process-id (#(procedure #:clean) chicken.process-context.posix#current-process-id () fixnum))
1961(chicken.process-context.posix#parent-process-id (#(procedure #:clean) chicken.process-context.posix#parent-process-id () fixnum))
1962
1963(chicken.process-context.posix#process-group-id (#(procedure #:clean #:enforce) chicken.process-context.posix#process-group-id () fixnum))
1964(chicken.process-context.posix#set-root-directory! (#(procedure #:clean #:enforce) chicken.process-context.posix#set-root-directory! (string) undefined))
1965(chicken.process-context.posix#user-information (#(procedure #:clean #:enforce) chicken.process-context.posix#user-information ((or string fixnum) #!optional *) *))
1966
1967
1968;; file.posix
1969
1970(chicken.file.posix#create-fifo (#(procedure #:clean #:enforce) chicken.file.posix#create-fifo (string #!optional fixnum) undefined))
1971(chicken.file.posix#create-symbolic-link (#(procedure #:clean #:enforce) chicken.file.posix#create-symbolic-link (string string) undefined))
1972(chicken.file.posix#read-symbolic-link (#(procedure #:clean #:enforce) chicken.file.posix#read-symbolic-link (string #!optional boolean) string))
1973(chicken.file.posix#duplicate-fileno (#(procedure #:clean #:enforce) chicken.file.posix#duplicate-fileno (fixnum #!optional fixnum) fixnum))
1974
1975(chicken.file.posix#fcntl/dupfd fixnum)
1976(chicken.file.posix#fcntl/getfd fixnum)
1977(chicken.file.posix#fcntl/getfl fixnum)
1978(chicken.file.posix#fcntl/setfd fixnum)
1979(chicken.file.posix#fcntl/setfl fixnum)
1980
1981(chicken.file.posix#file-access-time (#(procedure #:clean #:enforce) chicken.file.posix#file-access-time ((or string port fixnum)) integer))
1982(chicken.file.posix#file-change-time (#(procedure #:clean #:enforce) chicken.file.posix#file-change-time ((or string port fixnum)) integer))
1983(chicken.file.posix#file-modification-time (#(procedure #:clean #:enforce) chicken.file.posix#file-modification-time ((or string fixnum port)) integer))
1984(chicken.file.posix#file-close (#(procedure #:clean #:enforce) chicken.file.posix#file-close (fixnum) undefined))
1985(chicken.file.posix#file-control (#(procedure #:clean #:enforce) chicken.file.posix#file-control (fixnum fixnum #!optional fixnum) fixnum))
1986(chicken.file.posix#file-creation-mode (#(procedure #:clean #:enforce) chicken.file.posix#file-creation-mode (#!optional fixnum) fixnum))
1987(chicken.file.posix#file-group (#(procedure #:clean #:enforce) chicken.file.posix#file-owner ((or string fixnum port)) fixnum))
1988(chicken.file.posix#file-link (#(procedure #:clean #:enforce) chicken.file.posix#file-link (string string) undefined))
1989(chicken.file.posix#file-lock (#(procedure #:clean #:enforce) chicken.file.posix#file-lock (port #!optional fixnum integer) (struct lock)))
1990(chicken.file.posix#file-lock/blocking (#(procedure #:clean #:enforce) chicken.file.posix#file-lock/blocking (port #!optional fixnum integer) (struct lock)))
1991(chicken.file.posix#file-mkstemp (#(procedure #:clean #:enforce) chicken.file.posix#file-mkstemp (string) fixnum string))
1992(chicken.file.posix#file-open (#(procedure #:clean #:enforce) chicken.file.posix#file-open (string fixnum #!optional fixnum) fixnum))
1993(chicken.file.posix#file-owner (#(procedure #:clean #:enforce) chicken.file.posix#file-owner ((or string fixnum port)) fixnum))
1994(chicken.file.posix#file-permissions (#(procedure #:clean #:enforce) chicken.file.posix#file-permissions ((or string fixnum port)) fixnum))
1995(chicken.file.posix#file-position (#(procedure #:clean #:enforce) chicken.file.posix#file-position ((or port fixnum)) integer))
1996(chicken.file.posix#file-read (#(procedure #:clean #:enforce) chicken.file.posix#file-read (fixnum fixnum #!optional *) list))
1997(chicken.file.posix#file-select (#(procedure #:clean #:enforce) chicken.file.posix#file-select ((or (list-of fixnum) fixnum false) (or (list-of fixnum) fixnum false) #!optional number) * *))
1998(chicken.file.posix#file-size (#(procedure #:clean #:enforce) chicken.file.posix#file-size ((or string fixnum port)) integer))
1999(chicken.file.posix#file-stat (#(procedure #:clean #:enforce) chicken.file.posix#file-stat ((or string fixnum port) #!optional *) (vector-of integer)))
2000(chicken.file.posix#file-test-lock (#(procedure #:clean #:enforce) chicken.file.posix#file-test-lock (port #!optional fixnum *) boolean))
2001(chicken.file.posix#file-truncate (#(procedure #:clean #:enforce) chicken.file.posix#file-truncate ((or string fixnum output-port) integer) undefined))
2002(chicken.file.posix#file-unlock (#(procedure #:clean #:enforce) chicken.file.posix#file-unlock ((struct lock)) undefined))
2003(chicken.file.posix#file-write (#(procedure #:clean #:enforce) chicken.file.posix#file-write (fixnum * #!optional fixnum) fixnum))
2004(chicken.file.posix#file-type (#(procedure #:clean #:enforce) chicken.file.posix#file-type ((or string fixnum port) #!optional * *) symbol))
2005
2006(chicken.file.posix#block-device? (#(procedure #:clean #:enforce) chicken.file.posix#block-device? ((or string fixnum port)) boolean))
2007(chicken.file.posix#character-device? (#(procedure #:clean #:enforce) chicken.file.posix#character-device? ((or string fixnum port)) boolean))
2008(chicken.file.posix#directory? (#(procedure #:clean #:enforce) chicken.file.posix#directory? ((or string fixnum port)) boolean))
2009(chicken.file.posix#fifo? (#(procedure #:clean #:enforce) chicken.file.posix#fifo? ((or string fixnum port)) boolean))
2010(chicken.file.posix#regular-file? (#(procedure #:clean #:enforce) chicken.file.posix#regular-file? ((or string fixnum port)) boolean))
2011(chicken.file.posix#socket? (#(procedure #:clean #:enforce) chicken.file.posix#socket? ((or string fixnum port)) boolean))
2012(chicken.file.posix#symbolic-link? (#(procedure #:clean #:enforce) chicken.file.posix#symbolic-link? ((or string fixnum port)) boolean))
2013
2014(chicken.file.posix#fileno/stderr fixnum)
2015(chicken.file.posix#fileno/stdin fixnum)
2016(chicken.file.posix#fileno/stdout fixnum)
2017
2018(chicken.file.posix#open-input-file* (#(procedure #:clean #:enforce) chicken.file.posix#open-input-file* (fixnum #!optional keyword) input-port))
2019(chicken.file.posix#open-output-file* (#(procedure #:clean #:enforce) chicken.file.posix#open-output-file* (fixnum #!optional keyword) output-port))
2020
2021(chicken.file.posix#open/append fixnum)
2022(chicken.file.posix#open/binary fixnum)
2023(chicken.file.posix#open/creat fixnum)
2024(chicken.file.posix#open/excl fixnum)
2025(chicken.file.posix#open/fsync fixnum)
2026(chicken.file.posix#open/noctty fixnum)
2027(chicken.file.posix#open/noinherit fixnum)
2028(chicken.file.posix#open/nonblock fixnum)
2029(chicken.file.posix#open/rdonly fixnum)
2030(chicken.file.posix#open/rdwr fixnum)
2031(chicken.file.posix#open/read fixnum)
2032(chicken.file.posix#open/sync fixnum)
2033(chicken.file.posix#open/text fixnum)
2034(chicken.file.posix#open/trunc fixnum)
2035(chicken.file.posix#open/write fixnum)
2036(chicken.file.posix#open/wronly fixnum)
2037
2038(chicken.file.posix#perm/irgrp fixnum)
2039(chicken.file.posix#perm/iroth fixnum)
2040(chicken.file.posix#perm/irusr fixnum)
2041(chicken.file.posix#perm/irwxg fixnum)
2042(chicken.file.posix#perm/irwxo fixnum)
2043(chicken.file.posix#perm/irwxu fixnum)
2044(chicken.file.posix#perm/isgid fixnum)
2045(chicken.file.posix#perm/isuid fixnum)
2046(chicken.file.posix#perm/isvtx fixnum)
2047(chicken.file.posix#perm/iwgrp fixnum)
2048(chicken.file.posix#perm/iwoth fixnum)
2049(chicken.file.posix#perm/iwusr fixnum)
2050(chicken.file.posix#perm/ixgrp fixnum)
2051(chicken.file.posix#perm/ixoth fixnum)
2052(chicken.file.posix#perm/ixusr fixnum)
2053
2054(chicken.file.posix#port->fileno (#(procedure #:clean #:enforce) chicken.file.posix#port->fileno (port) fixnum))
2055
2056(chicken.file.posix#seek/cur fixnum)
2057(chicken.file.posix#seek/end fixnum)
2058(chicken.file.posix#seek/set fixnum)
2059
2060(chicken.file.posix#set-file-group! (#(procedure #:clean #:enforce) chicken.file.posix#set-file-group! ((or string fixnum port) fixnum) undefined))
2061(chicken.file.posix#set-file-owner! (#(procedure #:clean #:enforce) chicken.file.posix#set-file-owner! ((or string fixnum port) fixnum) undefined))
2062(chicken.file.posix#set-file-permissions! (#(procedure #:clean #:enforce) chicken.file.posix#set-file-permissions! ((or string fixnum port) fixnum) undefined))
2063(chicken.file.posix#set-file-position! (#(procedure #:clean #:enforce) chicken.file.posix#set-file-position! ((or port fixnum) integer #!optional fixnum) undefined))
2064(chicken.file.posix#set-file-times! (#(procedure #:clean #:enforce) chicken.file.posix#set-file-times! (string #!optional (or false integer) (or false integer)) undefined))
2065
2066
2067;; time.posix
2068
2069(chicken.time.posix#seconds->local-time (#(procedure #:clean #:enforce) chicken.time.posix#seconds->local-time (#!optional integer) (vector fixnum fixnum fixnum fixnum fixnum fixnum fixnum fixnum boolean fixnum)))
2070(chicken.time.posix#seconds->string (#(procedure #:clean #:enforce) chicken.time.posix#seconds->string (#!optional integer) string))
2071(chicken.time.posix#seconds->utc-time (#(procedure #:clean #:enforce) chicken.time.posix#seconds->utc-time (#!optional integer) (vector fixnum fixnum fixnum fixnum fixnum fixnum fixnum fixnum boolean fixnum)))
2072(chicken.time.posix#utc-time->seconds (#(procedure #:clean #:enforce) chicken.time.posix#utc-time->seconds ((vector fixnum fixnum fixnum fixnum fixnum fixnum fixnum fixnum boolean fixnum)) integer))
2073(chicken.time.posix#local-time->seconds (#(procedure #:clean #:enforce) chicken.time.posix#local-time->seconds ((vector fixnum fixnum fixnum fixnum fixnum fixnum fixnum fixnum boolean fixnum)) integer))
2074(chicken.time.posix#local-timezone-abbreviation (#(procedure #:clean) chicken.time.posix#local-timezone-abbreviation () string))
2075(chicken.time.posix#string->time (#(procedure #:clean #:enforce) chicken.time.posix#string->time (string #!optional string) (vector fixnum fixnum fixnum fixnum fixnum fixnum fixnum fixnum boolean fixnum)))
2076(chicken.time.posix#time->string (#(procedure #:clean #:enforce) chicken.time.posix#time->string ((vector fixnum fixnum fixnum fixnum fixnum fixnum fixnum fixnum boolean fixnum) #!optional string) string))
2077
2078;; process
2079
2080(chicken.process#process-execute
2081 (#(procedure #:clean #:enforce) chicken.process#process-execute (string #!optional (list-of string) (list-of (pair string string)) fixnum) noreturn))
2082(chicken.process#process-fork (#(procedure #:enforce) chicken.process#process-fork (#!optional (or (procedure () . *) false) *) fixnum))
2083(chicken.process#qs (#(procedure #:clean #:enforce) chicken.process#qs (string #!optional symbol) string))
2084(chicken.process#process-run (#(procedure #:clean #:enforce) chicken.process#process-run (string #!optional (list-of string)) fixnum))
2085(chicken.process#process-signal (#(procedure #:clean #:enforce) chicken.process#process-signal (fixnum #!optional fixnum) undefined))
2086(chicken.process#process-spawn
2087 (#(procedure #:clean #:enforce) chicken.process#process-spawn (fixnum string #!optional (list-of string) (list-of (pair string string)) boolean) fixnum))
2088(chicken.process#system (#(procedure #:clean #:enforce) chicken.process#system (string) fixnum))
2089(chicken.process#system* (#(procedure #:clean #:enforce) chicken.process#system* (string) undefined))
2090(chicken.process#process (#(procedure #:clean #:enforce) chicken.process#process (string #!optional (list-of string) (list-of (pair string string)) boolean) input-port output-port fixnum))
2091(chicken.process#process* (#(procedure #:clean #:enforce) chicken.process#process* (string #!optional (list-of string) (list-of (pair string string)) boolean) input-port output-port fixnum *))
2092(chicken.process#process-wait (#(procedure #:clean #:enforce) chicken.process#process-wait (#!optional fixnum *) fixnum fixnum fixnum))
2093(chicken.process#process-sleep (#(procedure #:clean #:enforce) chicken.process#process-sleep (fixnum) fixnum))
2094(chicken.process#call-with-input-pipe (#(procedure #:enforce) chicken.process#call-with-input-pipe (string (procedure (input-port) . *) #!optional keyword) . *))
2095(chicken.process#call-with-output-pipe (#(procedure #:enforce) chicken.process#call-with-output-pipe (string (procedure (input-port) . *) #!optional keyword) . *))
2096(chicken.process#close-input-pipe (#(procedure #:clean #:enforce) chicken.process#close-input-pipe (input-port) fixnum))
2097(chicken.process#close-output-pipe (#(procedure #:clean #:enforce) chicken.process#close-output-pipe (output-port) fixnum))
2098(chicken.process#create-pipe (procedure chicken.process#create-pipe (#!optional fixnum) fixnum fixnum))
2099(chicken.process#open-input-pipe (#(procedure #:clean #:enforce) chicken.process#open-input-pipe (string #!optional keyword) input-port))
2100(chicken.process#open-output-pipe (#(procedure #:clean #:enforce) chicken.process#open-output-pipe (string #!optional keyword) output-port))
2101(chicken.process#with-input-from-pipe (#(procedure #:enforce) chicken.process#with-input-from-pipe (string (procedure () . *) #!optional keyword) . *))
2102(chicken.process#with-output-to-pipe (#(procedure #:enforce) chicken.process#with-output-to-pipe (string (procedure () . *) #!optional keyword) . *))
2103
2104(chicken.process#pipe/buf fixnum)
2105(chicken.process#spawn/overlay fixnum)
2106(chicken.process#spawn/wait fixnum)
2107(chicken.process#spawn/nowait fixnum)
2108(chicken.process#spawn/nowaito fixnum)
2109(chicken.process#spawn/detach fixnum)
2110
2111
2112;; process.signal
2113
2114(chicken.process.signal#set-alarm! (#(procedure #:clean #:enforce) chicken.process#set-alarm! (integer) integer))
2115(chicken.process.signal#make-signal-handler (#(procedure #:clean #:enforce) chicken.process.signal#make-signal-handler (#!rest fixnum) (procedure () fixnum)))
2116(chicken.process.signal#set-signal-mask! (#(procedure #:clean #:enforce) chicken.process.signal#set-signal-mask! ((list-of fixnum)) undefined))
2117(chicken.process.signal#signal-ignore (#(procedure #:clean #:enforce) chicken.process.signal#signal-ignore (fixnum) undefined))
2118(chicken.process.signal#signal-default (#(procedure #:clean #:enforce) chicken.process.signal#signal-default (fixnum) undefined))
2119(chicken.process.signal#signal-mask (#(procedure #:clean) chicken.process.signal#signal-mask () fixnum))
2120(chicken.process.signal#signal-mask! (#(procedure #:clean #:enforce) chicken.process.signal#signal-mask! (fixnum) undefined))
2121(chicken.process.signal#signal-masked? (#(procedure #:clean #:enforce) chicken.process.signal#signal-masked? (fixnum) boolean))
2122(chicken.process.signal#signal-unmask! (#(procedure #:clean #:enforce) chicken.process.signal#signal-unmask! (fixnum) undefined))
2123
2124(chicken.process.signal#signal/abrt fixnum)
2125(chicken.process.signal#signal/alrm fixnum)
2126(chicken.process.signal#signal/chld fixnum)
2127(chicken.process.signal#signal/cont fixnum)
2128(chicken.process.signal#signal/fpe fixnum)
2129(chicken.process.signal#signal/hup fixnum)
2130(chicken.process.signal#signal/ill fixnum)
2131(chicken.process.signal#signal/int fixnum)
2132(chicken.process.signal#signal/io fixnum)
2133(chicken.process.signal#signal/bus fixnum)
2134(chicken.process.signal#signal/kill fixnum)
2135(chicken.process.signal#signal/pipe fixnum)
2136(chicken.process.signal#signal/prof fixnum)
2137(chicken.process.signal#signal/quit fixnum)
2138(chicken.process.signal#signal/segv fixnum)
2139(chicken.process.signal#signal/stop fixnum)
2140(chicken.process.signal#signal/term fixnum)
2141(chicken.process.signal#signal/trap fixnum)
2142(chicken.process.signal#signal/tstp fixnum)
2143(chicken.process.signal#signal/urg fixnum)
2144(chicken.process.signal#signal/usr1 fixnum)
2145(chicken.process.signal#signal/usr2 fixnum)
2146(chicken.process.signal#signal/vtalrm fixnum)
2147(chicken.process.signal#signal/winch fixnum)
2148(chicken.process.signal#signal/xcpu fixnum)
2149(chicken.process.signal#signal/xfsz fixnum)
2150(chicken.process.signal#signals-list (list-of fixnum))
2151
2152
2153;; sort
2154
2155(chicken.sort#merge
2156 (forall (e)
2157 (#(procedure #:enforce) chicken.sort#merge ((list-of e) (list-of e) (procedure (e e) *)) (list-of e))))
2158
2159(chicken.sort#merge!
2160 (forall (e)
2161 (#(procedure #:enforce) chicken.sort#merge! ((list-of e) (list-of e) (procedure (e e) *)) (list-of e))))
2162
2163(chicken.sort#sort
2164 (forall (e (s (or (vector-of e) (list-of e))))
2165 (#(procedure #:enforce)
2166 chicken.sort#sort
2167 (s (procedure (e e) *))
2168 s)))
2169
2170(chicken.sort#sort!
2171 (forall (e (s (or (vector-of e) (list-of e))))
2172 (#(procedure #:enforce)
2173 chicken.sort#sort!
2174 (s (procedure (e e) *))
2175 s)))
2176
2177(chicken.sort#sorted? (#(procedure #:enforce) chicken.sort#sorted? ((or list vector) (procedure (* *) *)) boolean))
2178(chicken.sort#topological-sort (#(procedure #:enforce) chicken.sort#topological-sort ((list-of list) (procedure (* *) *)) list))
2179
2180
2181;; srfi-4
2182
2183(srfi-4#blob->f32vector (#(procedure #:clean #:enforce) srfi-4#blob->f32vector (blob) (struct f32vector)))
2184(srfi-4#blob->f32vector/shared (#(procedure #:clean #:enforce) srfi-4#blob->f32vector/shared (blob) (struct f32vector)))
2185(srfi-4#blob->f64vector (#(procedure #:clean #:enforce) srfi-4#blob->f64vector (blob) (struct f64vector)))
2186(srfi-4#blob->f64vector/shared (#(procedure #:clean #:enforce) srfi-4#blob->f64vector/shared (blob) (struct f64vector)))
2187(srfi-4#blob->s16vector (#(procedure #:clean #:enforce) srfi-4#blob->s16vector (blob) (struct s16vector)))
2188(srfi-4#blob->s16vector/shared (#(procedure #:clean #:enforce) srfi-4#blob->s16vector/shared (blob) (struct s16vector)))
2189(srfi-4#blob->s32vector (#(procedure #:clean #:enforce) srfi-4#blob->s32vector (blob) (struct s32vector)))
2190(srfi-4#blob->s32vector/shared (#(procedure #:clean #:enforce) srfi-4#blob->s32vector/shared (blob) (struct s32vector)))
2191(srfi-4#blob->s8vector (#(procedure #:clean #:enforce) srfi-4#blob->s8vector (blob) (struct s8vector)))
2192(srfi-4#blob->s8vector/shared (#(procedure #:clean #:enforce) srfi-4#blob->s8vector/shared (blob) (struct s8vector)))
2193(srfi-4#blob->u16vector (#(procedure #:clean #:enforce) srfi-4#blob->u16vector (blob) (struct u16vector)))
2194(srfi-4#blob->u16vector/shared (#(procedure #:clean #:enforce) srfi-4#blob->u16vector/shared (blob) (struct u16vector)))
2195(srfi-4#blob->u32vector (#(procedure #:clean #:enforce) srfi-4#blob->u32vector (blob) (struct u32vector)))
2196(srfi-4#blob->u32vector/shared (#(procedure #:clean #:enforce) srfi-4#blob->u32vector/shared (blob) (struct u32vector)))
2197(srfi-4#blob->u64vector (#(procedure #:clean #:enforce) srfi-4#blob->u64vector (blob) (struct u64vector)))
2198(srfi-4#blob->u64vector/shared (#(procedure #:clean #:enforce) srfi-4#blob->u64vector/shared (blob) (struct u64vector)))
2199(srfi-4#blob->u8vector (#(procedure #:clean #:enforce) blob->u8vector (blob) (struct u8vector)))
2200(srfi-4#blob->u8vector/shared (#(procedure #:clean #:enforce) srfi-4#blob->u8vector/shared (blob) (struct u8vector)))
2201(srfi-4#f32vector (#(procedure #:clean #:enforce) srfi-4#f32vector (#!rest (or integer float)) (struct f32vector)))
2202(srfi-4#f32vector->blob (#(procedure #:clean #:enforce) srfi-4#f32vector->blob ((struct f32vector)) blob))
2203(srfi-4#f32vector->blob/shared (#(procedure #:clean #:enforce) srfi-4#f32vector->blob/shared ((struct f32vector)) blob))
2204(srfi-4#f32vector->list (#(procedure #:clean #:enforce) srfi-4#f32vector->list ((struct f32vector)) (list-of float)))
2205
2206(srfi-4#f32vector-length (#(procedure #:clean #:enforce) srfi-4#f32vector-length ((struct f32vector)) fixnum)
2207 (((struct f32vector)) (##core#inline "C_u_i_32vector_length" #(1))))
2208
2209(srfi-4#f32vector-ref (#(procedure #:clean #:enforce) srfi-4#f32vector-ref ((struct f32vector) fixnum) float))
2210(srfi-4#f32vector-set! (#(procedure #:clean #:enforce) srfi-4#f32vector-set! ((struct f32vector) fixnum (or integer float)) undefined))
2211
2212(srfi-4#f32vector? (#(procedure #:pure #:predicate (struct f32vector)) srfi-4#f32vector? (*) boolean))
2213
2214(srfi-4#f64vector (#(procedure #:clean #:enforce) srfi-4#f64vector (#!rest (or integer float)) (struct f64vector)))
2215(srfi-4#f64vector->blob (#(procedure #:clean #:enforce) srfi-4#f64vector->blob ((struct f64vector)) blob))
2216(srfi-4#f64vector->blob/shared (#(procedure #:clean #:enforce) srfi-4#f64vector->blob/shared ((struct f64vector)) blob))
2217(srfi-4#f64vector->list (#(procedure #:clean #:enforce) srfi-4#f64vector->list ((struct f64vector)) (list-of float)))
2218
2219(srfi-4#f64vector-length (#(procedure #:clean #:enforce) srfi-4#f64vector-length ((struct f64vector)) fixnum)
2220 (((struct f64vector)) (##core#inline "C_u_i_64vector_length" #(1))))
2221
2222(srfi-4#f64vector-ref (#(procedure #:clean #:enforce) srfi-4#f64vector-ref ((struct f64vector) fixnum) float))
2223(srfi-4#f64vector-set! (#(procedure #:clean #:enforce) srfi-4#f64vector-set! ((struct f64vector) fixnum (or integer float)) undefined))
2224
2225(srfi-4#f64vector? (#(procedure #:pure #:predicate (struct f64vector)) srfi-4#f64vector? (*) boolean))
2226
2227(srfi-4#list->f32vector (#(procedure #:clean #:enforce) srfi-4#list->f32vector ((list-of (or float integer))) (struct f32vector)))
2228(srfi-4#list->f64vector (#(procedure #:clean #:enforce) srfi-4#list->f64vector ((list-of (or float integer))) (struct f64vector)))
2229(srfi-4#list->s16vector (#(procedure #:clean #:enforce) srfi-4#list->s16vector ((list-of fixnum)) (struct s16vector)))
2230(srfi-4#list->s32vector (#(procedure #:clean #:enforce) srfi-4#list->s32vector ((list-of integer)) (struct s32vector)))
2231(srfi-4#list->s8vector (#(procedure #:clean #:enforce) srfi-4#list->s8vector ((list-of fixnum)) (struct s8vector)))
2232(srfi-4#list->u16vector (#(procedure #:clean #:enforce) srfi-4#list->u16vector ((list-of fixnum)) (struct u16vector)))
2233(srfi-4#list->u32vector (#(procedure #:clean #:enforce) srfi-4#list->u32vector ((list-of integer)) (struct u32vector)))
2234(srfi-4#list->u64vector (#(procedure #:clean #:enforce) srfi-4#list->u64vector ((list-of integer)) (struct u64vector)))
2235(srfi-4#list->u8vector (#(procedure #:clean #:enforce) srfi-4#list->u8vector ((list-of fixnum)) (struct u8vector)))
2236(srfi-4#make-f32vector (#(procedure #:clean #:enforce) srfi-4#make-f32vector (fixnum #!optional (or integer float false) boolean boolean) (struct f32vector)))
2237(srfi-4#make-f64vector (#(procedure #:clean #:enforce) srfi-4#make-f64vector (fixnum #!optional (or integer float false) boolean) (struct f64vector)))
2238(srfi-4#make-s16vector (#(procedure #:clean #:enforce) srfi-4#make-s16vector (fixnum #!optional (or fixnum false) boolean boolean) (struct s16vector)))
2239(srfi-4#make-s32vector (#(procedure #:clean #:enforce) srfi-4#make-s32vector (fixnum #!optional (or integer false) boolean boolean) (struct s32vector)))
2240(srfi-4#make-s8vector (#(procedure #:clean #:enforce) srfi-4#make-s8vector (fixnum #!optional (or fixnum false) boolean boolean) (struct s8vector)))
2241(srfi-4#make-u16vector (#(procedure #:clean #:enforce) srfi-4#make-u16vector (fixnum #!optional (or fixnum false) boolean boolean) (struct u16vector)))
2242(srfi-4#make-u32vector (#(procedure #:clean #:enforce) srfi-4#make-u32vector (fixnum #!optional (or integer false) boolean boolean) (struct u32vector)))
2243(srfi-4#make-u64vector (#(procedure #:clean #:enforce) srfi-4#make-u64vector (fixnum #!optional (or integer false) boolean boolean) (struct u64vector)))
2244(srfi-4#make-u8vector (#(procedure #:clean #:enforce) srfi-4#make-u8vector (fixnum #!optional (or fixnum false) boolean boolean) (struct u8vector)))
2245(srfi-4#read-u8vector (#(procedure #:enforce) srfi-4#read-u8vector (#!optional (or fixnum false) input-port) (or (struct u8vector) eof)))
2246(srfi-4#read-u8vector! (#(procedure #:enforce) srfi-4#read-u8vector! ((or fixnum false) (struct u8vector) #!optional input-port fixnum) integer))
2247(srfi-4#release-number-vector (procedure srfi-4#release-number-vector (*) undefined))
2248(srfi-4#s16vector (#(procedure #:clean #:enforce) srfi-4#s16vector (#!rest fixnum) (struct s16vector)))
2249(srfi-4#s16vector->blob (#(procedure #:clean #:enforce) srfi-4#s16vector->blob ((struct s16vector)) blob))
2250(srfi-4#s16vector->blob/shared (#(procedure #:clean #:enforce) srfi-4#s16vector->blob/shared ((struct s16vector)) blob))
2251(srfi-4#s16vector->list (#(procedure #:clean #:enforce) srfi-4#s16vector->list ((struct s16vector)) (list-of fixnum)))
2252
2253(srfi-4#s16vector-length (#(procedure #:clean #:enforce) srfi-4#s16vector-length ((struct s16vector)) fixnum)
2254 (((struct s16vector)) (##core#inline "C_u_i_16vector_length" #(1))))
2255
2256(srfi-4#s16vector-ref (#(procedure #:clean #:enforce) srfi-4#s16vector-ref ((struct s16vector) fixnum) fixnum))
2257(srfi-4#s16vector-set! (#(procedure #:clean #:enforce) srfi-4#s16vector-set! ((struct s16vector) fixnum fixnum) undefined))
2258
2259(srfi-4#s16vector? (#(procedure #:pure #:predicate (struct s16vector)) srfi-4#s16vector? (*) boolean))
2260
2261(srfi-4#s32vector (#(procedure #:clean #:enforce) srfi-4#s32vector (#!rest integer) (struct s32vector)))
2262(srfi-4#s32vector->blob (#(procedure #:clean #:enforce) srfi-4#s32vector->blob ((struct s32vector)) blob))
2263(srfi-4#s32vector->blob/shared (#(procedure #:clean #:enforce) srfi-4#s32vector->blob/shared ((struct s32vector)) blob))
2264(srfi-4#s32vector->list (#(procedure #:clean #:enforce) srfi-4#s32vector->list ((struct s32vector)) (list-of integer)))
2265
2266(srfi-4#s32vector-length (#(procedure #:clean #:enforce) srfi-4#s32vector-length ((struct s32vector)) fixnum)
2267 (((struct s32vector)) (##core#inline "C_u_i_32vector_length" #(1))))
2268
2269(srfi-4#s32vector-ref (#(procedure #:clean #:enforce) srfi-4#s32vector-ref ((struct s32vector) fixnum) integer))
2270(srfi-4#s32vector-set! (#(procedure #:clean #:enforce) srfi-4#s32vector-set! ((struct s32vector) fixnum integer) undefined))
2271
2272(srfi-4#s32vector? (#(procedure #:pure #:predicate (struct s32vector)) srfi-4#s32vector? (*) boolean))
2273
2274(srfi-4#s8vector (#(procedure #:clean #:enforce) srfi-4#s8vector (#!rest fixnum) (struct s8vector)))
2275(srfi-4#s8vector->blob (#(procedure #:clean #:enforce) srfi-4#s8vector->blob ((struct s8vector)) blob))
2276(srfi-4#s8vector->blob/shared (#(procedure #:clean #:enforce) srfi-4#s8vector->blob/shared ((struct s8vector)) blob))
2277(srfi-4#s8vector->list (#(procedure #:clean #:enforce) srfi-4#s8vector->list ((struct s8vector)) (list-of fixnum)))
2278
2279(srfi-4#s8vector-length (#(procedure #:clean #:enforce) srfi-4#s8vector-length ((struct s8vector)) fixnum)
2280 (((struct s8vector)) (##core#inline "C_u_i_8vector_length" #(1))))
2281
2282(srfi-4#s8vector-ref (#(procedure #:clean #:enforce) srfi-4#s8vector-ref ((struct s8vector) fixnum) fixnum))
2283(srfi-4#s8vector-set! (#(procedure #:clean #:enforce) srfi-4#s8vector-set! ((struct s8vector) fixnum fixnum) undefined))
2284
2285(srfi-4#s8vector? (#(procedure #:pure #:predicate (struct s8vector)) srfi-4#s8vector? (*) boolean))
2286
2287(srfi-4#subf32vector (#(procedure #:clean #:enforce) srfi-4#subf32vector ((struct f32vector) fixnum fixnum) (struct f32vector)))
2288(srfi-4#subf64vector (#(procedure #:clean #:enforce) srfi-4#subf64vector ((struct f64vector) fixnum fixnum) (struct f64vector)))
2289(srfi-4#subs16vector (#(procedure #:clean #:enforce) srfi-4#subs16vector ((struct s16vector) fixnum fixnum) (struct s16vector)))
2290(srfi-4#subs32vector (#(procedure #:clean #:enforce) srfi-4#subs32vector ((struct s32vector) fixnum fixnum) (struct s32vector)))
2291(srfi-4#subs8vector (#(procedure #:clean #:enforce) srfi-4#subs8vector ((struct s8vector) fixnum fixnum) (struct s8vector)))
2292(srfi-4#subu16vector (#(procedure #:clean #:enforce) srfi-4#subu16vector ((struct u16vector) fixnum fixnum) (struct u16vector)))
2293(srfi-4#subu32vector (#(procedure #:clean #:enforce) srfi-4#subu32vector ((struct u32vector) fixnum fixnum) (struct u32vector)))
2294(srfi-4#subu64vector (#(procedure #:clean #:enforce) srfi-4#subu64vector ((struct u64vector) fixnum fixnum) (struct u64vector)))
2295(srfi-4#subu8vector (#(procedure #:clean #:enforce) srfi-4#subu8vector ((struct u8vector) fixnum fixnum) (struct u8vector)))
2296(srfi-4#u16vector (#(procedure #:clean #:enforce) srfi-4#u16vector (#!rest fixnum) (struct u16vector)))
2297(srfi-4#u16vector->blob (#(procedure #:clean #:enforce) srfi-4#u16vector->blob ((struct u16vector)) blob))
2298(srfi-4#u16vector->blob/shared (#(procedure #:clean #:enforce) srfi-4#u16vector->blob/shared ((struct u16vector)) blob))
2299(srfi-4#u16vector->list (#(procedure #:clean #:enforce) srfi-4#u16vector->list ((struct u16vector)) (list-of fixnum)))
2300
2301(srfi-4#u16vector-length (#(procedure #:clean #:enforce) srfi-4#u16vector-length ((struct u16vector)) fixnum)
2302 (((struct u16vector)) (##core#inline "C_u_i_16vector_length" #(1))))
2303
2304(srfi-4#u16vector-ref (#(procedure #:clean #:enforce) srfi-4#u16vector-ref ((struct u16vector) fixnum) fixnum))
2305(srfi-4#u16vector-set! (#(procedure #:clean #:enforce) srfi-4#u16vector-set! ((struct u16vector) fixnum fixnum) undefined))
2306
2307(srfi-4#u16vector? (#(procedure #:pure #:predicate (struct u16vector)) srfi-4#u16vector? (*) boolean))
2308
2309(srfi-4#u32vector (#(procedure #:clean #:enforce) srfi-4#u32vector (#!rest integer) (struct u32vector)))
2310(srfi-4#u32vector->blob (#(procedure #:clean #:enforce) srfi-4#u32vector->blob ((struct u32vector)) blob))
2311(srfi-4#u32vector->blob/shared (#(procedure #:clean #:enforce) srfi-4#u32vector->blob/shared ((struct u32vector)) blob))
2312(srfi-4#u32vector->list (#(procedure #:clean #:enforce) srfi-4#u32vector->list ((struct u32vector)) (list-of integer)))
2313
2314(srfi-4#u32vector-length (#(procedure #:clean #:enforce) srfi-4#u32vector-length ((struct u32vector)) fixnum)
2315 (((struct u32vector)) (##core#inline "C_u_i_32vector_length" #(1))))
2316
2317(srfi-4#u32vector-ref (#(procedure #:clean #:enforce) srfi-4#u32vector-ref ((struct u32vector) fixnum) integer))
2318(srfi-4#u32vector-set! (#(procedure #:clean #:enforce) srfi-4#u32vector-set! ((struct u32vector) fixnum integer) undefined))
2319
2320(srfi-4#u32vector? (#(procedure #:pure #:predicate (struct u32vector)) srfi-4#u32vector? (*) boolean))
2321
2322(srfi-4#u64vector (#(procedure #:clean #:enforce) srfi-4#u64vector (#!rest integer) (struct u64vector)))
2323(srfi-4#u64vector->blob (#(procedure #:clean #:enforce) srfi-4#u64vector->blob ((struct u64vector)) blob))
2324(srfi-4#u64vector->blob/shared (#(procedure #:clean #:enforce) srfi-4#u64vector->blob/shared ((struct u64vector)) blob))
2325(srfi-4#u64vector->list (#(procedure #:clean #:enforce) srfi-4#u64vector->list ((struct u64vector)) (list-of integer)))
2326
2327(srfi-4#u64vector-length (#(procedure #:clean #:enforce) srfi-4#u64vector-length ((struct u64vector)) fixnum)
2328 (((struct u64vector)) (##core#inline "C_u_i_64vector_length" #(1))))
2329
2330(srfi-4#u64vector-ref (#(procedure #:clean #:enforce) srfi-4#u64vector-ref ((struct u64vector) fixnum) integer))
2331(srfi-4#u64vector-set! (#(procedure #:clean #:enforce) srfi-4#u64vector-set! ((struct u64vector) fixnum integer) undefined))
2332
2333(srfi-4#u64vector? (#(procedure #:pure #:predicate (struct u64vector)) srfi-4#u64vector? (*) boolean))
2334
2335(srfi-4#u8vector (#(procedure #:clean #:enforce) srfi-4#u8vector (#!rest fixnum) (struct u8vector)))
2336(srfi-4#u8vector->blob (#(procedure #:clean #:enforce) srfi-4#u8vector->blob ((struct u8vector)) blob))
2337(srfi-4#u8vector->blob/shared (#(procedure #:clean #:enforce) srfi-4#u8vector->blob/shared ((struct u8vector)) blob))
2338(srfi-4#u8vector->list (#(procedure #:clean #:enforce) srfi-4#u8vector->list ((struct u8vector)) (list-of fixnum)))
2339
2340(srfi-4#u8vector-length (#(procedure #:clean #:enforce) srfi-4#u8vector-length ((struct u8vector)) fixnum)
2341 (((struct u8vector)) (##core#inline "C_u_i_8vector_length" #(1))))
2342
2343(srfi-4#u8vector-ref (#(procedure #:clean #:enforce) srfi-4#u8vector-ref ((struct u8vector) fixnum) fixnum))
2344(srfi-4#u8vector-set! (#(procedure #:clean #:enforce) srfi-4#u8vector-set! ((struct u8vector) fixnum fixnum) undefined))
2345
2346(srfi-4#u8vector? (#(procedure #:pure #:predicate (struct u8vector)) srfi-4#u8vector? (*) boolean))
2347
2348(srfi-4#write-u8vector (#(procedure #:enforce) srfi-4#write-u8vector ((struct u8vector) #!optional output-port fixnum fixnum) undefined))
2349
2350(srfi-4#number-vector? (#(procedure #:pure #:predicate (or (struct u8vector) (struct u16vector) (struct s8vector) (struct s16vector) (struct u32vector) (struct s32vector) (struct u64vector) (struct s64vector) (struct f32vector) (struct f64vector))) srfi-4#number-vector? (*) boolean))
2351(##sys#srfi-4-vector? (#(procedure #:pure #:predicate (or (struct u8vector) (struct u16vector) (struct s8vector) (struct s16vector) (struct u32vector) (struct s32vector) (struct u64vector) (struct s64vector) (struct f32vector) (struct f64vector))) ##sys#srfi-4-vector? (*) boolean))
2352
2353;; syntax
2354
2355(chicken.syntax#er-macro-transformer
2356 (#(procedure #:clean #:enforce)
2357 chicken.syntax#er-macro-transformer
2358 ((procedure (* (procedure (*) *) (procedure (* *) *)) *))
2359 (struct transformer)))
2360(chicken.syntax#expand (procedure chicken.syntax#expand (* #!optional list) *))
2361(chicken.syntax#ir-macro-transformer
2362 (#(procedure #:clean #:enforce)
2363 chicken.syntax#ir-macro-transformer
2364 ((procedure (* (procedure (*) *) (procedure (* *) *)) *))
2365 (struct transformer)))
2366(chicken.syntax#read-with-source-info (#(procedure #:enforce) chicken.syntax#read-with-source-info (#!optional input-port) *))
2367(chicken.syntax#strip-syntax (#(procedure #:clean) chicken.syntax#strip-syntax (*) *))
2368(chicken.syntax#syntax-error (procedure chicken.syntax#syntax-error (* #!rest) noreturn))
2369
2370;; tcp
2371
2372(chicken.tcp#tcp-abandon-port (#(procedure #:clean #:enforce) chicken.tcp#tcp-abandon-port (port) undefined))
2373(chicken.tcp#tcp-accept (#(procedure #:clean #:enforce) chicken.tcp#tcp-accept ((struct tcp-listener)) input-port output-port))
2374(chicken.tcp#tcp-accept-ready? (#(procedure #:clean #:enforce) chicken.tcp#tcp-accept-ready? ((struct tcp-listener)) boolean))
2375(chicken.tcp#tcp-accept-timeout (#(procedure #:clean #:enforce) chicken.tcp#tcp-accept-timeout (#!optional (or false integer)) (or false integer)))
2376(chicken.tcp#tcp-addresses (#(procedure #:clean #:enforce) chicken.tcp#tcp-addresses (port) string string))
2377(chicken.tcp#tcp-buffer-size (#(procedure #:clean #:enforce) chicken.tcp#tcp-buffer-size (#!optional (or false fixnum)) (or false fixnum)))
2378(chicken.tcp#tcp-close (#(procedure #:clean #:enforce) chicken.tcp#tcp-close ((struct tcp-listener)) undefined))
2379(chicken.tcp#tcp-connect (#(procedure #:clean #:enforce) chicken.tcp#tcp-connect (string #!optional fixnum) input-port output-port))
2380(chicken.tcp#tcp-connect-timeout (#(procedure #:clean #:enforce) chicken.tcp#tcp-connect-timeout (#!optional (or false integer)) (or false integer)))
2381(chicken.tcp#tcp-listen (#(procedure #:clean #:enforce) chicken.tcp#tcp-listen (fixnum #!optional fixnum *) (struct tcp-listener)))
2382
2383(chicken.tcp#tcp-listener-fileno (#(procedure #:clean #:enforce) chicken.tcp#tcp-listener-fileno ((struct tcp-listener)) fixnum)
2384 (((struct tcp-listener)) (##sys#slot #(1) '1)))
2385
2386(chicken.tcp#tcp-listener-port (#(procedure #:clean #:enforce) chicken.tcp#tcp-listener-port ((struct tcp-listener)) fixnum))
2387
2388(chicken.tcp#tcp-listener? (#(procedure #:clean #:predicate (struct tcp-listener)) chicken.tcp#tcp-listener? (*) boolean))
2389
2390(chicken.tcp#tcp-port-numbers (#(procedure #:clean #:enforce) chicken.tcp#tcp-port-numbers (port) fixnum fixnum))
2391(chicken.tcp#tcp-read-timeout (#(procedure #:clean #:enforce) chicken.tcp#tcp-read-timeout (#!optional (or false integer)) (or false integer)))
2392(chicken.tcp#tcp-write-timeout (#(procedure #:clean #:enforce) chicken.tcp#tcp-write-timeout (#!optional (or false integer)) (or false integer)))
2393
2394
2395;; Undocumented internal module, only here to have the deprecation warning because some eggs use it
2396(chicken.compiler.support#read/source-info deprecated)