27797
((3) 0 () 50 ((q lib "ffi/unsafe/define.rkt") (q lib "ffi/unsafe.rkt") (q quote #%foreign) (q lib "ffi/vector.rkt") (q 22327 . 23) (q lib "ffi/unsafe/port.rkt") (q lib "ffi/unsafe/com.rkt") (q 17224 . 22) (q 18843 . 22) (q lib "ffi/unsafe/atomic.rkt") (q lib "ffi/unsafe/objc.rkt") (q 2781 . 16) (q 19647 . 23) (q 3610 . 4) (q 18014 . 22) (q 2639 . 4) (q lib "ffi/unsafe/os-async-channel.rkt") (q lib "ffi/unsafe/schedule.rkt") (q 23936 . 22) (q 2412 . 13) (q 16514 . 22) (q lib "ffi/unsafe/cvector.rkt") (q lib "ffi/file.rkt") (q 20527 . 22) (q lib "ffi/unsafe/os-thread.rkt") (q lib "ffi/unsafe/define/conventions.rkt") (q lib "ffi/unsafe/alloc.rkt") (q 24665 . 22) (q 23207 . 22) (q 21356 . 24) (q 53596 . 7) (q lib "ffi/unsafe/collect-callback.rkt") (q 53435 . 7) (q 3526 . 4) (q 2722 . 4) (q 3161 . 3) (q lib "ffi/com-registry.rkt") (q lib "ffi/unsafe/custodian.rkt") (q lib "ffi/unsafe/vm.rkt") (q 2036 . 5) (q lib "ffi/unsafe/global.rkt") (q 3206 . 3) (q 3251 . 4) (q 3061 . 6) (q lib "ffi/winapi.rkt") (q 27756 . 7) (q lib "ffi/unsafe/nsalloc.rkt") (q lib "ffi/unsafe/try-atomic.rkt") (q 13062 . 25) (q 26466 . 17)) () (h ! (equal) ((c form c (c (? . 0) q define-ffi-definer)) q (28815 . 8)) ((c def c (c (? . 0) q make-not-available)) q (29318 . 3)) ((c def c (c (? . 3) q u64vector->list)) c (? . 4)) ((c def c (c (? . 5) q unsafe-port->file-descriptor)) q (35269 . 3)) ((c form c (c (? . 1) q _vector)) q (7984 . 2)) ((c def c (c (? . 2) q ffi-call)) q (53793 . 19)) ((c def c (c (? . 1) q _string*/latin-1)) c (? . 13)) ((c def c (c (? . 6) q progid->clsid)) q (42940 . 3)) ((c def c (c (? . 9) q end-uninterruptible)) q (33053 . 2)) ((c form c (c (? . 25) q convention:hyphen->underscore)) q (29438 . 2)) ((c def c (c (? . 2) q _pointer)) q (3907 . 2)) ((c def c (c (? . 3) q f80vector)) c (? . 27)) ((c def c (c (? . 2) q make-late-weak-box)) q (16115 . 3)) ((c def c (c (? . 3) q u64vector-set!)) c (? . 4)) ((c def c (c (? . 1) q array-set!)) q (10740 . 5)) ((c def c (c (? . 1) q _sword)) c (? . 34)) ((c def c (c (? . 1) q _bitmask)) q (12147 . 4)) ((c def c (c (? . 5) q unsafe-file-descriptor->port)) q (34869 . 6)) ((c def c (c (? . 5) q unsafe-file-descriptor->semaphore)) q (35444 . 5)) ((c def c (c (? . 3) q f64vector->list)) c (? . 18)) ((c def c (c (? . 2) q make-late-will-executor)) q (56432 . 2)) ((c def c (c (? . 2) q ctype-scheme->c)) c (? . 30)) ((c def c (c (? . 10) q YES)) q (37172 . 2)) ((c def c (c (? . 1) q _ullong)) c (? . 11)) ((c def c (c (? . 3) q list->u16vector)) c (? . 8)) ((c def c (c (? . 3) q u64vector-ref)) c (? . 4)) ((c def c (c (? . 6) q type-described-value)) q (47197 . 3)) ((c def c (c (? . 6) q com-enumerate-to-list)) q (46532 . 3)) ((c def c (c (? . 22) q _file/guard)) q (50090 . 4)) ((c def c (c (? . 5) q unsafe-port->socket)) q (35361 . 3)) ((c def c (c (? . 6) q com-set-property-type)) q (45276 . 6)) ((c def c (c (? . 3) q s8vector->list)) c (? . 7)) ((c def c (c (? . 3) q s16vector-length)) c (? . 14)) ((c def c (c (? . 6) q com-make-event-executor)) q (46040 . 2)) ((c def c (c (? . 3) q s8vector-ref)) c (? . 7)) ((c def c (c (? . 3) q u16vector-length)) c (? . 8)) ((c def c (c (? . 6) q AddRef)) q (48129 . 3)) ((c def c (c (? . 9) q call-as-nonatomic)) q (32896 . 3)) ((c def c (c (? . 10) q objc_msgSend/typed/blocking)) q (41675 . 9)) ((c def c (c (? . 2) q malloc)) q (14966 . 17)) ((c def c (c (? . 6) q com-create-instance)) q (43155 . 4)) ((c def c (c (? . 1) q _sbyte)) c (? . 15)) ((c form c (c (? . 10) q get-ivar)) q (38627 . 2)) ((c def c (c (? . 1) q vector->cblock)) q (52180 . 9)) ((c def c (c (? . 3) q list->s32vector)) c (? . 12)) ((c def c (c (? . 37) q register-finalizer-and-custodian-shutdown)) q (31561 . 17)) ((c def c (c (? . 1) q _bytes/eof)) q (3850 . 2)) ((c def c (c (? . 1) q _sintptr)) c (? . 11)) ((c def c (c (? . 1) q array-type)) q (10993 . 3)) ((c def c (c (? . 16) q os-async-channel-put)) q (36551 . 4)) ((c def c (c (? . 3) q u32vector?)) c (? . 23)) ((c def c (c (? . 1) q ffi-obj-ref)) q (1580 . 5)) ((c def c (c (? . 3) q s32vector?)) c (? . 12)) ((c def c (c (? . 1) q array?)) q (10589 . 3)) ((c def c (c (? . 1) q _string*/utf-8)) c (? . 13)) ((c def c (c (? . 3) q s16vector)) c (? . 14)) ((c def c (c (? . 3) q f32vector)) c (? . 28)) ((q form ((lib "ffi/serialize-cstruct.rkt") define-serializable-cstruct)) q (27936 . 15)) ((c def c (c (? . 6) q type-description?)) q (46970 . 3)) ((c def c (c (? . 36) q coclass->clsid)) q (47470 . 3)) ((c form c (c (? . 1) q define-cstruct)) q (9284 . 22)) ((c def c (c (? . 1) q _sllong)) c (? . 11)) ((c def c (c (? . 6) q string->clsid)) q (42686 . 3)) ((c def c (c (? . 3) q u8vector-set!)) c (? . 20)) ((c form c (c (? . 3) q _u8vector)) q (17178 . 3)) ((c def c (c (? . 1) q _racket)) q (3961 . 2)) ((c form c (c (? . 3) q _u32vector)) q (21308 . 3)) ((c def c (c (? . 2) q ptr-offset)) q (12633 . 3)) ((c def c (c (? . 6) q Release)) q (48218 . 3)) ((c def c (c (? . 24) q os-semaphore-wait)) q (36365 . 3)) ((c def c (c (? . 21) q cvector->list)) q (26171 . 3)) ((c def c (c (? . 3) q list->s64vector)) c (? . 29)) ((c def c (c (? . 6) q com-omit)) q (44460 . 2)) ((c def c (c (? . 10) q objc_msgSend/typed)) q (41082 . 6)) ((c def c (c (? . 2) q cpointer?)) q (12272 . 3)) ((c def c (c (? . 1) q _short)) c (? . 11)) ((c def c (c (? . 1) q _enum)) q (11962 . 5)) ((c def c (c (? . 2) q _gcpointer)) q (3933 . 2)) ((c def c (c (? . 2) q _ufixint)) c (? . 41)) ((c def c (c (? . 6) q make-com-object)) q (48311 . 7)) ((c def c (c (? . 6) q com-method-type)) q (44110 . 6)) ((c def c (c (? . 17) q unsafe-poller)) q (33844 . 3)) ((c def c (c (? . 1) q _array/vector)) q (11394 . 4)) ((c def c (c (? . 1) q _ubyte)) c (? . 15)) ((c def c (c (? . 1) q set-ffi-obj!)) q (941 . 6)) ((c def c (c (? . 2) q ffi-obj?)) c (? . 32)) ((c def c (c (? . 16) q os-async-channel-try-get)) q (36647 . 4)) ((c def c (c (? . 1) q _string*/locale)) c (? . 13)) ((c def c (c (? . 17) q unsafe-signal-received)) q (34766 . 2)) ((c def c (c (? . 3) q u64vector->cpointer)) c (? . 4)) ((c def c (c (? . 38) q vm-primitive)) q (50940 . 3)) ((c def c (c (? . 9) q end-breakable-atomic)) q (32785 . 2)) ((c def c (c (? . 6) q com-set-properties)) q (45164 . 3)) ((c def c (c (? . 3) q make-f64vector)) c (? . 18)) ((c def c (c (? . 10) q class_getSuperclass)) q (40049 . 3)) ((c def c (c (? . 10) q objc-block-function-pointer)) q (39459 . 3)) ((c def c (c (? . 6) q current-hfun-retry-delay)) q (49137 . 4)) ((c def c (c (? . 10) q class_addIvar)) q (40455 . 11)) ((c def c (c (? . 10) q _Class)) q (37076 . 2)) ((c def c (c (? . 1) q _sint64)) c (? . 19)) ((c def c (c (? . 17) q unsafe-poll-ctx-milliseconds-wakeup)) q (34418 . 5)) ((c def c (c (? . 6) q type-described?)) q (47033 . 3)) ((c def c (c (? . 1) q _sint32)) c (? . 19)) ((c def c (c (? . 10) q objc-get-class)) q (38922 . 3)) ((c def c (c (? . 10) q NO)) q (37195 . 2)) ((c def c (c (? . 2) q ffi-callback-maker)) q (55809 . 14)) ((c def c (c (? . 2) q make-cstruct-type)) q (8138 . 13)) ((c def c (c (? . 3) q u8vector-length)) c (? . 20)) ((c def c (c (? . 16) q os-async-channel-get)) q (36772 . 3)) ((c def c (c (? . 1) q _cprocedure)) q (4159 . 27)) ((c def c (c (? . 3) q u64vector-length)) c (? . 4)) ((c def c (c (? . 16) q make-os-async-channel)) q (36431 . 2)) ((c def c (c (? . 21) q cvector-set!)) q (26046 . 5)) ((c def c (c (? . 3) q s32vector-set!)) c (? . 12)) ((c def c (c (? . 10) q class_addMethod)) q (40117 . 11)) ((c def c (c (? . 9) q uninterruptible-lock-acquire)) q (33221 . 3)) ((c def c (c (? . 9) q start-uninterruptible)) q (33008 . 2)) ((c def c (c (? . 1) q _int)) c (? . 11)) ((c def c (c (? . 9) q call-as-uninterruptible)) q (33096 . 3)) ((q form ((lib "ffi/unsafe/runtime-lib.rkt") define-runtime-lib)) q (51063 . 24)) ((c def c (c (? . 2) q prop:cpointer)) q (16468 . 2)) ((c def c (c (? . 22) q _file/r)) q (50251 . 2)) ((c def c (c (? . 3) q u32vector->list)) c (? . 23)) ((c def c (c (? . 2) q _void)) q (3392 . 2)) ((c def c (c (? . 3) q u16vector->cpointer)) c (? . 8)) ((c def c (c (? . 3) q f64vector-length)) c (? . 18)) ((c form c (c (? . 10) q with-blocking-tell)) q (39545 . 2)) ((c def c (c (? . 24) q make-os-semaphore)) q (36260 . 2)) ((c def c (c (? . 22) q security-guard-check-network)) q (50532 . 9)) ((c def c (c (? . 26) q releaser)) q (30250 . 4)) ((c form c (c (? . 25) q convention:hyphen->camelCase)) q (29475 . 2)) ((c def c (c (? . 6) q _IUnknown)) q (49711 . 2)) ((c def c (c (? . 6) q com-object-get-idispatch)) q (46765 . 3)) ((c def c (c (? . 26) q retainer)) q (30383 . 10)) ((c def c (c (? . 21) q make-cvector*)) q (26325 . 5)) ((c def c (c (? . 3) q f80vector->cpointer)) c (? . 27)) ((c def c (c (? . 3) q f32vector-length)) c (? . 28)) ((c def c (c (? . 10) q objc-is-a?)) q (38745 . 4)) ((c form c (c (? . 10) q import-class)) q (37539 . 2)) ((c def c (c (? . 9) q make-uninterruptible-lock)) q (33172 . 2)) ((c def c (c (? . 31) q unsafe-remove-collect-callbacks)) q (36977 . 3)) ((c def c (c (? . 1) q _string/eof)) q (3878 . 2)) ((c def c (c (? . 2) q _uint64)) c (? . 19)) ((c def c (c (? . 2) q ffi-lib?)) q (0 . 3)) ((c def c (c (? . 2) q _stdbool)) q (3343 . 2)) ((c def c (c (? . 1) q _string/locale)) c (? . 33)) ((c def c (c (? . 10) q _Protocol)) q (37100 . 2)) ((c def c (c (? . 2) q _uint32)) c (? . 19)) ((c def c (c (? . 10) q _id)) q (37055 . 2)) ((c def c (c (? . 1) q union-set!)) q (11792 . 5)) ((c def c (c (? . 10) q objc_lookUpClass)) q (39585 . 3)) ((c def c (c (? . 6) q com-get-property*)) q (45035 . 5)) ((c def c (c (? . 3) q f32vector-ref)) c (? . 28)) ((c form c (c (? . 1) q _?)) q (6833 . 2)) ((c def c (c (? . 3) q s64vector->list)) c (? . 29)) ((c def c (c (? . 6) q SysFreeString)) q (49491 . 3)) ((c def c (c (? . 2) q ctype-sizeof)) c (? . 39)) ((c def c (c (? . 2) q _longdouble)) q (3314 . 2)) ((c def c (c (? . 3) q f32vector?)) c (? . 28)) ((c def c (c (? . 2) q ctype-basetype)) c (? . 30)) ((c def c (c (? . 6) q string->guid)) q (42625 . 3)) ((c def c (c (? . 31) q unsafe-add-collect-callbacks)) q (36849 . 4)) ((c def c (c (? . 2) q _uint8)) c (? . 19)) ((c def c (c (? . 2) q ffi-callback)) q (55205 . 15)) ((c def c (c (? . 6) q com-idispatch?)) q (46910 . 3)) ((c def c (c (? . 3) q u16vector->list)) c (? . 8)) ((c def c (c (? . 6) q com-object-set-clsid!)) q (43586 . 4)) ((c def c (c (? . 2) q cpointer-tag)) q (14810 . 3)) ((c def c (c (? . 3) q f80vector-set!)) c (? . 27)) ((c form c (c (? . 1) q _box)) q (7421 . 2)) ((c def c (c (? . 21) q cvector-ptr)) q (25878 . 3)) ((c def c (c (? . 2) q _scheme)) q (3986 . 2)) ((c def c (c (? . 6) q com-event-executor?)) q (45975 . 3)) ((c def c (c (? . 2) q free-immobile-cell)) q (15929 . 3)) ((c def c (c (? . 26) q allocator)) q (29584 . 8)) ((c def c (c (? . 2) q ptr-add)) q (12426 . 5)) ((c def c (c (? . 3) q s64vector->cpointer)) c (? . 29)) ((c def c (c (? . 2) q ffi-obj-name)) c (? . 32)) ((c def c (c (? . 6) q IID_IUnknown)) q (49683 . 2)) ((c def c (c (? . 6) q com-get-properties)) q (44540 . 3)) ((c def c (c (? . 1) q _string/latin-1)) c (? . 33)) ((c def c (c (? . 1) q ctype->layout)) q (2193 . 4)) ((c def c (c (? . 21) q make-cvector)) q (25469 . 4)) ((c def c (c (? . 10) q object_setInstanceVariable)) q (40938 . 5)) ((c def c (c (? . 2) q _fixnum)) c (? . 35)) ((c def c (c (? . 1) q _uword)) c (? . 34)) ((c def c (c (? . 2) q _int16)) c (? . 19)) ((c def c (c (? . 2) q ptr-add!)) q (12923 . 5)) ((c def c (c (? . 10) q _objc_super)) q (41646 . 2)) ((c def c (c (? . 1) q _gcable)) q (4099 . 3)) ((c def c (c (? . 3) q list->u32vector)) c (? . 23)) ((c form c (c (? . 1) q define-c)) q (1537 . 2)) ((c def c (c (? . 2) q ptr-set!)) c (? . 48)) ((c def c (c (? . 3) q s8vector?)) c (? . 7)) ((c def c (c (? . 3) q s16vector->list)) c (? . 14)) ((c def c (c (? . 2) q ffi-callback?)) q (56373 . 3)) ((c def c (c (? . 1) q _sshort)) c (? . 11)) ((c def c (c (? . 3) q u16vector?)) c (? . 8)) ((c def c (c (? . 1) q _size)) c (? . 43)) ((c def c (c (? . 1) q _wchar)) q (2698 . 2)) ((c form c (c (? . 10) q tellv)) q (37475 . 3)) ((c def c (c (? . 2) q make-union-type)) q (11512 . 3)) ((c def c (c (? . 3) q s32vector-ref)) c (? . 12)) ((c def c (c (? . 6) q string->iid)) q (42749 . 3)) ((c def c (c (? . 10) q objc-subclass?)) q (38827 . 4)) ((c def c (c (? . 3) q list->s8vector)) c (? . 7)) ((c def c (c (? . 3) q u32vector-set!)) c (? . 23)) ((c def c (c (? . 6) q IID_NULL)) q (49659 . 2)) ((c def c (c (? . 1) q array-ptr)) q (10859 . 3)) ((c def c (c (? . 2) q _ufixnum)) c (? . 35)) ((c def c (c (? . 1) q list->cblock)) q (51795 . 9)) ((c def c (c (? . 3) q u16vector)) c (? . 8)) ((c form c (c (? . 10) q selector)) q (38716 . 2)) ((c def c (c (? . 3) q make-u16vector)) c (? . 8)) ((c def c (c (? . 6) q com-event-type)) q (45795 . 5)) ((c form c (c (? . 10) q self)) q (38535 . 2)) ((c form c (c (? . 10) q define-objc-mixin)) q (38408 . 6)) ((c def c (c (? . 1) q void/reference-sink)) q (16401 . 3)) ((c def c (c (? . 1) q union-ptr)) q (11905 . 3)) ((c def c (c (? . 22) q security-guard-check-file-link)) q (50302 . 7)) ((c def c (c (? . 3) q make-s32vector)) c (? . 12)) ((c def c (c (? . 2) q lookup-errno)) q (52834 . 3)) ((c def c (c (? . 10) q objc_msgSendSuper/typed/blocking)) q (41981 . 9)) ((c def c (c (? . 10) q _SEL)) q (37127 . 2)) ((c def c (c (? . 40) q get-place-table)) q (36104 . 2)) ((c def c (c (? . 1) q _cpointer/null)) c (? . 49)) ((c def c (c (? . 3) q s64vector-ref)) c (? . 29)) ((c def c (c (? . 1) q cpointer-predicate-procedure?)) q (27681 . 3)) ((c def c (c (? . 3) q list->f32vector)) c (? . 28)) ((c def c (c (? . 6) q _IUnknown-pointer)) q (49738 . 2)) ((c form c (c (? . 0) q provide-protected)) q (29392 . 2)) ((c def c (c (? . 3) q make-f32vector)) c (? . 28)) ((c form c (c (? . 3) q _s8vector)) q (17968 . 3)) ((c def c (c (? . 9) q call-as-atomic)) q (32829 . 3)) ((c def c (c (? . 1) q ffi-lib)) q (54 . 13)) ((c def c (c (? . 3) q s32vector-length)) c (? . 12)) ((c def c (c (? . 3) q s64vector-set!)) c (? . 29)) ((c def c (c (? . 6) q type-describe)) q (47094 . 4)) ((c def c (c (? . 2) q _string/ucs-4)) q (3415 . 2)) ((c def c (c (? . 3) q s16vector-ref)) c (? . 14)) ((c def c (c (? . 3) q s16vector->cpointer)) c (? . 14)) ((c def c (c (? . 6) q com-get-active-object)) q (43400 . 3)) ((c def c (c (? . 1) q _uintptr)) c (? . 11)) ((c def c (c (? . 3) q f32vector->list)) c (? . 28)) ((c form c (c (? . 1) q _fun)) q (5653 . 26)) ((c def c (c (? . 3) q s8vector-set!)) c (? . 7)) ((c def c (c (? . 2) q memcpy)) q (14194 . 13)) ((c form c (c (? . 6) q _hmfun)) q (48912 . 2)) ((c def c (c (? . 1) q _ulong)) c (? . 11)) ((c def c (c (? . 3) q f80vector-length)) c (? . 27)) ((c def c (c (? . 5) q unsafe-fd->evt)) q (35806 . 5)) ((c form c (c (? . 10) q define-objc-class)) q (37619 . 25)) ((c def c (c (? . 1) q _sint)) c (? . 11)) ((c form c (c (? . 1) q _list)) q (7460 . 23)) ((c def c (c (? . 1) q _sint16)) c (? . 19)) ((c def c (c (? . 3) q f64vector->cpointer)) c (? . 18)) ((c def c (c (? . 3) q s64vector-length)) c (? . 29)) ((c def c (c (? . 5) q unsafe-socket->port)) q (35095 . 5)) ((c def c (c (? . 3) q f64vector-set!)) c (? . 18)) ((c def c (c (? . 2) q ptr-equal?)) q (12327 . 4)) ((c def c (c (? . 6) q com-invoke)) q (44332 . 5)) ((c def c (c (? . 10) q objc-set-class!)) q (38982 . 4)) ((c def c (c (? . 3) q f32vector-set!)) c (? . 28)) ((c def c (c (? . 6) q guid=?)) q (42865 . 4)) ((c def c (c (? . 6) q guid->string)) q (42808 . 3)) ((c def c (c (? . 6) q LOCALE_SYSTEM_DEFAULT)) q (49444 . 2)) ((c def c (c (? . 3) q s64vector?)) c (? . 29)) ((c def c (c (? . 3) q make-f80vector)) c (? . 27)) ((c def c (c (? . 1) q cpointer-has-tag?)) c (? . 45)) ((c def c (c (? . 3) q s16vector?)) c (? . 14)) ((c def c (c (? . 2) q ffi-obj-lib)) c (? . 32)) ((c def c (c (? . 6) q _HRESULT)) q (49395 . 2)) ((c def c (c (? . 2) q _fpointer)) q (4011 . 2)) ((c def c (c (? . 6) q com-get-property)) q (44867 . 5)) ((c def c (c (? . 3) q make-u64vector)) c (? . 4)) ((c def c (c (? . 2) q _int32)) c (? . 19)) ((c def c (c (? . 36) q clsid->coclass)) q (47542 . 3)) ((c def c (c (? . 1) q compute-offsets)) q (10132 . 6)) ((c def c (c (? . 3) q f80vector?)) c (? . 27)) ((c def c (c (? . 6) q com-register-event-callback)) q (46101 . 9)) ((c def c (c (? . 6) q _IUnknown_vt)) q (49773 . 2)) ((c form c (c (? . 6) q _hfun)) q (48759 . 5)) ((c def c (c (? . 3) q u8vector)) c (? . 20)) ((c def c (c (? . 3) q list->u8vector)) c (? . 20)) ((c def c (c (? . 3) q u8vector-ref)) c (? . 20)) ((c def c (c (? . 6) q guid?)) q (42472 . 3)) ((c def c (c (? . 3) q s32vector->cpointer)) c (? . 12)) ((c def c (c (? . 2) q _symbol)) q (3501 . 2)) ((c form c (c (? . 10) q import-protocol)) q (37576 . 2)) ((q form ((lib "ffi/unsafe/static.rkt") _fun)) q (28715 . 3)) ((c def c (c (? . 6) q HRESULT-retry?)) q (49260 . 3)) ((c def c (c (? . 6) q iid?)) q (42575 . 3)) ((c def c (c (? . 10) q objc_allocateClassPair)) q (39796 . 5)) ((c def c (c (? . 44) q win64?)) q (50870 . 2)) ((c def c (c (? . 1) q _ushort)) c (? . 11)) ((c form c (c (? . 3) q _f64vector)) q (24617 . 3)) ((c def c (c (? . 3) q f80vector->list)) c (? . 27)) ((c def c (c (? . 37) q register-custodian-shutdown)) q (30801 . 13)) ((c def c (c (? . 2) q memset)) q (14594 . 7)) ((c def c (c (? . 2) q _path)) q (3478 . 2)) ((c def c (c (? . 2) q end-stubborn-change)) q (15790 . 3)) ((c def c (c (? . 3) q s8vector->cpointer)) c (? . 7)) ((c def c (c (? . 21) q cvector-length)) q (25726 . 3)) ((c def c (c (? . 2) q _double)) c (? . 42)) ((c def c (c (? . 6) q com-object?)) q (43088 . 3)) ((c form c (c (? . 46) q with-autorelease)) q (42440 . 2)) ((c def c (c (? . 3) q s8vector-length)) c (? . 7)) ((c def c (c (? . 3) q make-s64vector)) c (? . 29)) ((c form c (c (? . 25) q convention:hyphen->camelcase)) q (29548 . 2)) ((c def c (c (? . 1) q _uint)) c (? . 11)) ((c def c (c (? . 1) q in-array)) q (11048 . 6)) ((c def c (c (? . 22) q _file/rw)) q (50276 . 2)) ((c def c (c (? . 10) q objc_msgSendSuper/typed)) q (41254 . 9)) ((c def c (c (? . 9) q end-atomic)) q (32705 . 2)) ((c form c (c (? . 3) q _s32vector)) q (20479 . 3)) ((c def c (c (? . 6) q com-set-property!)) q (45503 . 6)) ((c def c (c (? . 3) q s32vector->list)) c (? . 12)) ((c def c (c (? . 38) q vm-eval)) q (51003 . 3)) ((c def c (c (? . 10) q sel_registerName)) q (39736 . 3)) ((c def c (c (? . 3) q make-u8vector)) c (? . 20)) ((c def c (c (? . 3) q list->u64vector)) c (? . 4)) ((c def c (c (? . 2) q compiler-sizeof)) q (2300 . 3)) ((c def c (c (? . 3) q u8vector?)) c (? . 20)) ((c def c (c (? . 21) q cvector?)) q (25672 . 3)) ((c def c (c (? . 3) q list->f80vector)) c (? . 27)) ((c def c (c (? . 6) q _LCID)) q (49421 . 2)) ((c def c (c (? . 10) q objc-get-superclass)) q (39066 . 3)) ((c def c (c (? . 1) q union-ref)) q (11699 . 4)) ((c def c (c (? . 2) q make-ctype)) q (1791 . 5)) ((c def c (c (? . 17) q unsafe-set-sleep-in-thread!)) q (34585 . 5)) ((c form c (c (? . 1) q _bytes)) q (8036 . 3)) ((c def c (c (? . 21) q cvector-type)) q (25813 . 3)) ((c def c (c (? . 17) q unsafe-poll-fd)) q (33969 . 5)) ((q form ((lib "ffi/objc.rkt") objc-unsafe!)) q (42317 . 2)) ((c def c (c (? . 6) q com-object-type)) q (43846 . 3)) ((c def c (c (? . 2) q ctype-alignof)) c (? . 39)) ((c def c (c (? . 40) q register-process-global)) q (36002 . 4)) ((c def c (c (? . 2) q _fixint)) c (? . 41)) ((c def c (c (? . 10) q objc-block)) q (39304 . 5)) ((c form c (c (? . 10) q set-ivar!)) q (38665 . 2)) ((c def c (c (? . 9) q start-atomic)) q (32669 . 2)) ((c def c (c (? . 1) q union?)) q (11647 . 3)) ((c def c (c (? . 1) q _slong)) c (? . 11)) ((c def c (c (? . 6) q _GUID-pointer)) q (49364 . 2)) ((c def c (c (? . 6) q com-object-clsid)) q (43516 . 3)) ((c def c (c (? . 2) q ctype-c->scheme)) c (? . 30)) ((c def c (c (? . 22) q security-guard-check-file)) q (49903 . 5)) ((c def c (c (? . 6) q current-hfun-retry-count)) q (48982 . 4)) ((c def c (c (? . 6) q clsid?)) q (42523 . 3)) ((c def c (c (? . 1) q _list-struct)) q (8759 . 11)) ((c def c (c (? . 1) q array-ref)) q (10641 . 4)) ((c def c (c (? . 1) q get-ffi-obj)) q (704 . 6)) ((c def c (c (? . 2) q _double*)) c (? . 42)) ((c form c (c (? . 6) q _mfun)) q (48664 . 3)) ((c def c (c (? . 24) q os-semaphore-post)) q (36299 . 3)) ((c def c (c (? . 2) q _int8)) c (? . 19)) ((c def c (c (? . 1) q _array/list)) q (11278 . 4)) ((c form c (c (? . 3) q _f32vector)) q (23888 . 3)) ((c def c (c (? . 6) q windows-error)) q (49803 . 4)) ((c def c (c (? . 3) q make-s16vector)) c (? . 14)) ((c def c (c (? . 24) q os-thread-enabled?)) q (36143 . 2)) ((c def c (c (? . 1) q _llong)) c (? . 11)) ((c def c (c (? . 1) q _string/utf-8)) c (? . 33)) ((c def c (c (? . 10) q make-objc_super)) q (41554 . 4)) ((c def c (c (? . 5) q unsafe-socket->semaphore)) q (35626 . 4)) ((c def c (c (? . 1) q function-ptr)) q (6639 . 4)) ((c def c (c (? . 1) q _or-null)) q (4038 . 3)) ((c def c (c (? . 1) q register-finalizer)) q (16000 . 4)) ((c def c (c (? . 6) q com-enumeration-to-list)) q (46606 . 3)) ((c def c (c (? . 9) q start-breakable-atomic)) q (32739 . 2)) ((c def c (c (? . 1) q _intptr)) c (? . 11)) ((c def c (c (? . 3) q s16vector-set!)) c (? . 14)) ((c def c (c (? . 10) q objc_getProtocol)) q (39659 . 3)) ((c form c (c (? . 3) q _u64vector)) q (23159 . 3)) ((c def c (c (? . 2) q vector->cpointer)) q (52575 . 3)) ((c form c (c (? . 1) q _ptr)) q (6843 . 20)) ((c def c (c (? . 47) q call-as-nonatomic-retry-point)) q (33375 . 3)) ((c def c (c (? . 9) q in-atomic-mode?)) q (32966 . 2)) ((c def c (c (? . 1) q _sint8)) c (? . 19)) ((c def c (c (? . 17) q unsafe-make-signal-received)) q (34812 . 2)) ((q def ((lib "ffi/unsafe/nsstring.rkt") _NSString)) q (42339 . 2)) ((c def c (c (? . 1) q _string)) q (3697 . 2)) ((c def c (c (? . 6) q com-iunknown?)) q (46851 . 3)) ((c def c (c (? . 2) q ctype?)) q (1984 . 3)) ((c def c (c (? . 3) q f32vector->cpointer)) c (? . 28)) ((c def c (c (? . 17) q unsafe-poll-ctx-eventmask-wakeup)) q (34258 . 5)) ((c def c (c (? . 10) q objc-dispose-class)) q (39238 . 3)) ((c form c (c (? . 25) q convention:hyphen->PascalCase)) q (29511 . 2)) ((c def c (c (? . 2) q set-cpointer-tag!)) q (14873 . 4)) ((c def c (c (? . 1) q _union)) q (11584 . 3)) ((c def c (c (? . 2) q _int64)) c (? . 19)) ((c def c (c (? . 2) q _float)) c (? . 42)) ((c def c (c (? . 3) q u32vector-length)) c (? . 23)) ((c form c (c (? . 3) q _s64vector)) q (22279 . 3)) ((c def c (c (? . 2) q make-sized-byte-string)) q (16275 . 4)) ((c def c (c (? . 21) q cvector)) q (25584 . 4)) ((c def c (c (? . 1) q _intmax)) c (? . 43)) ((c def c (c (? . 6) q com-object-get-iunknown)) q (46682 . 3)) ((c def c (c (? . 1) q array-length)) q (10916 . 3)) ((c def c (c (? . 6) q com-unregister-event-callback)) q (46423 . 4)) ((c def c (c (? . 3) q u16vector-set!)) c (? . 8)) ((c form c (c (? . 1) q _bytes/nul-terminated)) q (8072 . 3)) ((c def c (c (? . 1) q _word)) c (? . 34)) ((c def c (c (? . 3) q list->f64vector)) c (? . 18)) ((c def c (c (? . 37) q unregister-custodian-shutdown)) q (31391 . 5)) ((c def c (c (? . 37) q make-custodian-at-root)) q (32618 . 2)) ((c def c (c (? . 44) q winapi)) q (50896 . 2)) ((c def c (c (? . 1) q cpointer-push-tag!)) c (? . 45)) ((c def c (c (? . 1) q make-c-parameter)) q (1136 . 11)) ((c def c (c (? . 3) q make-u32vector)) c (? . 23)) ((c def c (c (? . 2) q _bool)) q (3369 . 2)) ((c def c (c (? . 6) q com-object-eq?)) q (43688 . 4)) ((c def c (c (? . 3) q u8vector->cpointer)) c (? . 20)) ((c def c (c (? . 6) q com-methods)) q (44005 . 3)) ((c def c (c (? . 1) q _long)) c (? . 11)) ((c def c (c (? . 1) q _byte)) c (? . 15)) ((c def c (c (? . 2) q flvector->cpointer)) q (52644 . 3)) ((c def c (c (? . 6) q com-release)) q (43336 . 3)) ((c def c (c (? . 1) q default-_string-type)) q (3722 . 4)) ((c def c (c (? . 10) q object_getInstanceVariable)) q (40833 . 4)) ((c def c (c (? . 3) q u64vector?)) c (? . 4)) ((c def c (c (? . 46) q call-with-autorelease)) q (42366 . 3)) ((c form c (c (? . 21) q _cvector)) q (25419 . 3)) ((c def c (c (? . 2) q ffi-obj)) q (53317 . 4)) ((c form c (c (? . 1) q define-cpointer-type)) q (27194 . 10)) ((c def c (c (? . 10) q objc-class-has-instance-method?)) q (39134 . 4)) ((c def c (c (? . 2) q malloc-immobile-cell)) q (15862 . 3)) ((c def c (c (? . 6) q com-type=?)) q (43918 . 4)) ((c def c (c (? . 1) q _ssize)) c (? . 43)) ((c def c (c (? . 1) q cblock->vector)) q (53172 . 5)) ((c form c (c (? . 3) q _f80vector)) q (25371 . 3)) ((c form c (c (? . 6) q _wfun)) q (48569 . 3)) ((c def c (c (? . 10) q _Ivar)) q (41059 . 2)) ((c def c (c (? . 10) q objc_registerClassPair)) q (39918 . 3)) ((c def c (c (? . 2) q set-ptr-offset!)) q (12777 . 5)) ((c def c (c (? . 1) q _array)) q (10478 . 4)) ((c def c (c (? . 3) q u8vector->list)) c (? . 20)) ((c def c (c (? . 3) q make-s8vector)) c (? . 7)) ((c form c (c (? . 3) q _u16vector)) q (19599 . 3)) ((c def c (c (? . 26) q deallocator)) q (29920 . 8)) ((c def c (c (? . 6) q com-get-property-type)) q (44652 . 6)) ((c def c (c (? . 6) q type-described-description)) q (47272 . 3)) ((c def c (c (? . 6) q com-omit?)) q (44485 . 3)) ((c def c (c (? . 3) q u64vector)) c (? . 4)) ((c def c (c (? . 1) q cblock->list)) q (53031 . 5)) ((c def c (c (? . 17) q unsafe-poll-ctx-fd-wakeup)) q (34114 . 5)) ((c def c (c (? . 2) q ffi-call-maker)) q (54495 . 17)) ((c def c (c (? . 36) q com-all-coclasses)) q (47365 . 2)) ((c def c (c (? . 2) q _string/utf-16)) q (3446 . 2)) ((c def c (c (? . 6) q clsid->progid)) q (43009 . 3)) ((c def c (c (? . 10) q object_getClass)) q (39988 . 3)) ((c def c (c (? . 10) q _BOOL)) q (37149 . 2)) ((c def c (c (? . 3) q f64vector)) c (? . 18)) ((c def c (c (? . 3) q f64vector?)) c (? . 18)) ((c def c (c (? . 3) q u32vector-ref)) c (? . 23)) ((c def c (c (? . 6) q com-events)) q (45691 . 3)) ((c def c (c (? . 24) q call-in-os-thread)) q (36188 . 3)) ((c def c (c (? . 47) q try-atomic)) q (33457 . 9)) ((c form c (c (? . 3) q _s16vector)) q (18795 . 3)) ((c def c (c (? . 1) q cast)) q (52916 . 5)) ((c def c (c (? . 2) q saved-errno)) q (52721 . 4)) ((c def c (c (? . 6) q SysAllocStringLen)) q (49554 . 4)) ((c form c (c (? . 1) q ->)) q (6774 . 2)) ((c def c (c (? . 2) q free)) q (15734 . 3)) ((c def c (c (? . 1) q _ptrdiff)) c (? . 43)) ((c def c (c (? . 2) q make-array-type)) q (10364 . 4)) ((c def c (c (? . 3) q list->s16vector)) c (? . 14)) ((c def c (c (? . 3) q u16vector-ref)) c (? . 8)) ((c def c (c (? . 3) q s32vector)) c (? . 12)) ((c def c (c (? . 2) q ptr-ref)) c (? . 48)) ((c def c (c (? . 2) q memmove)) q (13788 . 13)) ((c def c (c (? . 16) q os-async-channel?)) q (36488 . 3)) ((c def c (c (? . 3) q u32vector->cpointer)) c (? . 23)) ((c def c (c (? . 2) q _uint16)) c (? . 19)) ((c form c (c (? . 1) q define-fun-syntax)) q (6784 . 2)) ((c def c (c (? . 1) q _cpointer)) c (? . 49)) ((c def c (c (? . 3) q s64vector)) c (? . 29)) ((c def c (c (? . 6) q _GUID)) q (49341 . 2)) ((c def c (c (? . 21) q cvector-ref)) q (25945 . 4)) ((c def c (c (? . 3) q s8vector)) c (? . 7)) ((c def c (c (? . 2) q make-late-weak-hasheq)) q (16180 . 3)) ((c form c (c (? . 10) q super-tell)) q (38547 . 3)) ((c def c (c (? . 6) q QueryInterface)) q (47883 . 7)) ((c form c (c (? . 6) q define-com-interface)) q (47610 . 8)) ((c def c (c (? . 3) q f80vector-ref)) c (? . 27)) ((c def c (c (? . 1) q _uintmax)) c (? . 43)) ((c def c (c (? . 3) q u32vector)) c (? . 23)) ((c def c (c (? . 6) q com-type?)) q (43791 . 3)) ((c def c (c (? . 9) q uninterruptible-lock-release)) q (33298 . 3)) ((c def c (c (? . 2) q offset-ptr?)) q (12566 . 3)) ((c form c (c (? . 10) q tell)) q (37217 . 9)) ((c def c (c (? . 21) q list->cvector)) q (26236 . 4)) ((c def c (c (? . 1) q _file)) q (3827 . 2)) ((c def c (c (? . 36) q com-all-controls)) q (47418 . 2)) ((c def c (c (? . 2) q cpointer-gcable?)) q (12705 . 3)) ((c def c (c (? . 3) q f64vector-ref)) c (? . 18))))
procedure
(ffi-lib? v) -> boolean?
  v : any/c
procedure
(ffi-lib  path                            
         [version                         
          #:get-lib-dirs get-lib-dirs     
          #:fail fail                     
          #:global? global?               
          #:custodian custodian])     -> any
  path : (or/c path-string? #f)
  version : (or/c string? (listof (or/c string? #f)) #f) = #f
  get-lib-dirs : (-> (listof path?)) = get-lib-search-dirs
  fail : (or/c #f (-> any)) = #f
  global? : any/c = (eq? 'global (system-type 'so-mode))
  custodian : (or/c 'place custodian? #f) = #f
procedure
(get-ffi-obj objname lib type [failure-thunk]) -> any
  objname : (or/c string? bytes? symbol?)
  lib : (or/c ffi-lib? path-string? #f)
  type : ctype?
  failure-thunk : (or/c (-> any) #f) = #f
procedure
(set-ffi-obj! objname lib type new) -> void?
  objname : (or/c string? bytes? symbol?)
  lib : (or/c ffi-lib? path-string? #f)
  type : ctype?
  new : any/c
procedure
(make-c-parameter  objname         
                   lib             
                   type            
                  [failure-thunk]) 
 -> (case-> (-> any)
            (any/c . -> . void?))
  objname : (or/c string? bytes? symbol?)
  lib : (or/c ffi-lib? path-string? #f)
  type : ctype?
  failure-thunk : (or/c (-> any) #f) = #f
syntax
(define-c id lib-expr type-expr)
procedure
(ffi-obj-ref objname lib [failure-thunk]) -> any
  objname : (or/c string? bytes? symbol?)
  lib : (or/c ffi-lib? path-string? #f)
  failure-thunk : (or/c (-> any) #f) = #f
procedure
(make-ctype type racket-to-c c-to-racket) -> ctype?
  type : ctype?
  racket-to-c : (or/c #f (any/c . -> . any))
  c-to-racket : (or/c #f (any/c . -> . any))
procedure
(ctype? v) -> boolean?
  v : any/c
procedure
(ctype-sizeof type) -> exact-nonnegative-integer?
  type : ctype?
(ctype-alignof type) -> exact-nonnegative-integer?
  type : ctype?
procedure
(ctype->layout type)
 -> (flat-rec-contract rep symbol? (listof rep))
  type : ctype?
procedure
(compiler-sizeof sym) -> exact-nonnegative-integer?
  sym : (or/c symbol? (listof symbol?))
value
_int8 : ctype?
_sint8 : ctype?
_uint8 : ctype?
_int16 : ctype?
_sint16 : ctype?
_uint16 : ctype?
_int32 : ctype?
_sint32 : ctype?
_uint32 : ctype?
_int64 : ctype?
_sint64 : ctype?
_uint64 : ctype?
value
_byte : ctype?
_sbyte : ctype?
_ubyte : ctype?
value
_wchar : ctype?
value
_word : ctype?
_sword : ctype?
_uword : ctype?
value
_short : ctype?
_sshort : ctype?
_ushort : ctype?
_int : ctype?
_sint : ctype?
_uint : ctype?
_long : ctype?
_slong : ctype?
_ulong : ctype?
_llong : ctype?
_sllong : ctype?
_ullong : ctype?
_intptr : ctype?
_sintptr : ctype?
_uintptr : ctype?
value
_size : ctype?
_ssize : ctype?
_ptrdiff : ctype?
_intmax : ctype?
_uintmax : ctype?
value
_fixnum : ctype?
_ufixnum : ctype?
value
_fixint : ctype?
_ufixint : ctype?
value
_float : ctype?
_double : ctype?
_double* : ctype?
value
_longdouble : ctype?
value
_stdbool : ctype?
value
_bool : ctype?
value
_void : ctype?
value
_string/ucs-4 : ctype?
value
_string/utf-16 : ctype?
value
_path : ctype?
value
_symbol : ctype?
value
_string/utf-8 : ctype?
_string/latin-1 : ctype?
_string/locale : ctype?
value
_string*/utf-8 : ctype?
_string*/latin-1 : ctype?
_string*/locale : ctype?
value
_string : ctype?
parameter
(default-_string-type) -> ctype?
(default-_string-type type) -> void?
  type : ctype?
value
_file : ctype?
value
_bytes/eof : ctype?
value
_string/eof : ctype?
value
_pointer : ctype?
value
_gcpointer : ctype?
value
_racket : ctype?
value
_scheme : ctype?
value
_fpointer : ctype?
procedure
(_or-null ctype) -> ctype?
  ctype : ctype?
procedure
(_gcable ctype) -> ctype?
  ctype : ctype?
procedure
(_cprocedure  input-types                                 
              output-type                                 
             [#:abi abi                                   
              #:varargs-after varargs-after               
              #:atomic? atomic?                           
              #:async-apply async-apply                   
              #:lock-name lock-name                       
              #:in-original-place? in-original-place?     
              #:blocking? blocking?                       
              #:callback-exns? callback-exns?             
              #:save-errno save-errno                     
              #:wrapper wrapper                           
              #:keep keep])                           -> any
  input-types : (list ctype?)
  output-type : ctype?
  abi : (or/c #f 'default 'stdcall 'sysv) = #f
  varargs-after : (or/c #f positive-exact-integer?) = #f
  atomic? : any/c = #f
  async-apply : (or/c #f ((-> any/c) . -> . any/c) box?) = #f
  lock-name : (or/c string? #f) = #f
  in-original-place? : any/c = #f
  blocking? : any/c = #f
  callback-exns? : any/c = #f
  save-errno : (or/c #f 'posix 'windows) = #f
  wrapper : (or/c #f (procedure? . -> . procedure?)) = #f
  keep : (or/c boolean? box? (any/c . -> . any/c)) = #t
syntax
(_fun fun-option ... maybe-args type-spec ... -> type-spec
      maybe-wrapper)
 
   fun-option = #:abi abi-expr
              | #:varargs-after varargs-after-expr
              | #:save-errno save-errno-expr
              | #:keep keep-expr
              | #:atomic? atomic?-expr
              | #:async-apply async-apply-expr
              | #:lock-name lock-name-expr
              | #:in-original-place? in-original-place?-expr
              | #:blocking? blocking?-expr
              | #:callback-exns? callback-exns?-expr
              | #:retry (retry-id [arg-id init-expr])
                 
   maybe-args = 
              | formals ::
                 
    type-spec = type-expr
              | (id : type-expr)
              | (type-expr = value-expr)
              | (id : type-expr = value-expr)
                 
maybe-wrapper = 
              | -> output-expr
procedure
(function-ptr ptr-or-proc fun-type) -> cpointer?
  ptr-or-proc : (or cpointer? procedure?)
  fun-type : ctype?
syntax
->
syntax
(define-fun-syntax id transformer-expr)
syntax
_?
syntax
(_ptr mode type-expr maybe-malloc-mode)
 
             mode = i
                  | o
                  | io
                     
maybe-malloc-mode = 
                  | #f
                  | raw
                  | atomic
                  | nonatomic
                  | tagged
                  | atomic-interior
                  | interior
                  | zeroed-atomic
                  | zeroed-atomic-interior
                  | stubborn
                  | uncollectable
                  | eternal
syntax
(_box type maybe-malloc-mode)
syntax
(_list mode type maybe-len maybe-mode)
 
      mode = i
           | o
           | io
              
 maybe-len = 
           | len-expr
              
maybe-mode = 
           | atomic
           | raw
           | atomic
           | nonatomic
           | tagged
           | atomic-interior
           | interior
           | zeroed-atomic
           | zeroed-atomic-interior
           | stubborn
           | uncollectable
           | eternal
syntax
(_vector mode type maybe-len maybe-mode)
syntax
_bytes
(_bytes o len-expr)
syntax
_bytes/nul-terminated
(_bytes/nul-terminated o len-expr)
procedure
(make-cstruct-type  types             
                   [abi               
                    alignment         
                    malloc-mode]) -> ctype?
  types : (non-empty-listof ctype?)
  abi : (or/c #f 'default 'stdcall 'sysv) = #f
  alignment : (or/c #f 1 2 4 8 16) = #f
  malloc-mode : (or/c 'raw 'atomic 'nonatomic 'tagged
                      'atomic-interior 'interior
                      'zeroed-atomic 'zeroed-atomic-interior
                      'stubborn 'uncollectable 'eternal)
              = 'atomic
procedure
(_list-struct [#:alignment alignment          
               #:malloc-mode malloc-mode]     
               type ...+)                 -> ctype?
  alignment : (or/c #f 1 2 4 8 16) = #f
  malloc-mode : (or/c 'raw 'atomic 'nonatomic 'tagged
                      'atomic-interior 'interior
                      'zeroed-atomic 'zeroed-atomic-interior
                      'stubborn 'uncollectable 'eternal)
              = 'atomic
  type : ctype?
syntax
(define-cstruct id/sup ([field-id type-expr field-option ...] ...)
  property ...)
 
      id/sup = _id
             | (_id _super-id)
                
field-option = #:offset offset-expr
                
    property = #:alignment alignment-expr
             | #:malloc-mode malloc-mode-expr
             | #:property prop-expr val-expr
             | #:no-equal
             | #:define-unsafe
 
  offset-expr : exact-integer?
  alignment-expr : (or/c #f 1 2 4 8 16)
  malloc-mode-expr : (or/c 'raw 'atomic 'nonatomic 'tagged
                           'atomic-interior 'interior
                           'zeroed-atomic 'zeroed-atomic-interior
                           'stubborn 'uncollectable 'eternal)
  prop-expr : struct-type-property?
procedure
(compute-offsets types [alignment declare])
 -> (listof exact-integer?)
  types : (listof ctype?)
  alignment : (or/c #f 1 2 4 8 16) = #f
  declare : (listof (or/c #f exact-integer?)) = '()
procedure
(make-array-type type count) -> ctype?
  type : ctype?
  count : exact-nonnegative-integer?
procedure
(_array type count ...+) -> ctype?
  type : ctype?
  count : exact-nonnegative-integer?
procedure
(array? v) -> boolean?
  v : any/c
procedure
(array-ref a i ...+) -> any/c
  a : array?
  i : exact-nonnegative-integer?
procedure
(array-set! a i ...+ v) -> void?
  a : array?
  i : exact-nonnegative-integer?
  v : any/c
procedure
(array-ptr a) -> cpointer?
  a : array?
procedure
(array-length a) -> exact-nonnegative-integer?
  a : array?
procedure
(array-type a) -> ctype?
  a : array?
procedure
(in-array a [start stop step]) -> sequence?
  a : array?
  start : exact-nonnegative-integer? = 0
  stop : (or/c exact-integer? #f) = #f
  step : (and/c exact-integer? (not/c zero?)) = 1
procedure
(_array/list type count ...+) -> ctype?
  type : ctype?
  count : exact-nonnegative-integer?
procedure
(_array/vector type count ...+) -> ctype?
  type : ctype?
  count : exact-nonnegative-integer?
procedure
(make-union-type type ...+) -> ctype?
  type : ctype?
procedure
(_union type ...+) -> ctype?
  type : ctype?
procedure
(union? v) -> boolean?
  v : any/c
procedure
(union-ref u i) -> any/c
  u : union?
  i : exact-nonnegative-integer?
procedure
(union-set! u i v) -> void?
  u : union?
  i : exact-nonnegative-integer?
  v : any/c
procedure
(union-ptr u) -> cpointer?
  u : union?
procedure
(_enum symbols [basetype #:unknown unknown]) -> ctype?
  symbols : list?
  basetype : ctype? = _ufixint
  unknown : any/c = (lambda (x) (error ....))
procedure
(_bitmask symbols [basetype]) -> ctype?
  symbols : (or symbol? list?)
  basetype : ctype? = _uint
procedure
(cpointer? v) -> boolean?
  v : any/c
procedure
(ptr-equal? cptr1 cptr2) -> boolean?
  cptr1 : cpointer?
  cptr2 : cpointer?
procedure
(ptr-add cptr offset [type]) -> cpointer?
  cptr : cpointer?
  offset : exact-integer?
  type : ctype? = _byte
procedure
(offset-ptr? cptr) -> boolean?
  cptr : cpointer?
procedure
(ptr-offset cptr) -> exact-integer?
  cptr : cpointer?
procedure
(cpointer-gcable? cptr) -> boolean?
  cptr : cpointer?
procedure
(set-ptr-offset! cptr offset [ctype]) -> void?
  cptr : cpointer?
  offset : exact-integer?
  ctype : ctype? = _byte
procedure
(ptr-add! cptr offset [ctype]) -> void?
  cptr : cpointer?
  offset : exact-integer?
  ctype : ctype? = _byte
procedure
(ptr-ref cptr type [offset]) -> any
  cptr : cpointer?
  type : ctype?
  offset : exact-nonnegative-integer? = 0
(ptr-ref cptr type abs-tag offset) -> any
  cptr : cpointer?
  type : ctype?
  abs-tag : 'abs
  offset : exact-nonnegative-integer?
(ptr-set! cptr type val) -> void?
  cptr : cpointer?
  type : ctype?
  val : any/c
(ptr-set! cptr type offset val) -> void?
  cptr : cpointer?
  type : ctype?
  offset : exact-nonnegative-integer?
  val : any/c
(ptr-set! cptr type abs-tag offset val) -> void?
  cptr : cpointer?
  type : ctype?
  abs-tag : 'abs
  offset : exact-nonnegative-integer?
  val : any/c
procedure
(memmove  cptr            
         [offset]         
          src-cptr        
         [src-offset]     
          count           
         [type])      -> void?
  cptr : cpointer?
  offset : exact-integer? = 0
  src-cptr : cpointer?
  src-offset : exact-integer? = 0
  count : exact-nonnegative-integer?
  type : ctype? = _byte
procedure
(memcpy  cptr            
        [offset]         
         src-cptr        
        [src-offset]     
         count           
        [type])      -> void?
  cptr : cpointer?
  offset : exact-integer? = 0
  src-cptr : cpointer?
  src-offset : exact-integer? = 0
  count : exact-nonnegative-integer?
  type : ctype? = _byte
procedure
(memset cptr [offset] byte count [type]) -> void?
  cptr : cpointer?
  offset : exact-integer? = 0
  byte : byte?
  count : exact-nonnegative-integer?
  type : ctype? = _byte
procedure
(cpointer-tag cptr) -> any
  cptr : cpointer?
procedure
(set-cpointer-tag! cptr tag) -> void?
  cptr : cpointer?
  tag : any/c
procedure
(malloc  bytes-or-type     
        [type-or-bytes     
         cptr              
         mode              
         fail-mode])   -> cpointer?
  bytes-or-type : (or/c (and/c exact-nonnegative-integer? fixnum?)
                        ctype?)
  type-or-bytes : (or/c (and/c exact-nonnegative-integer? fixnum?)
                        ctype?)
                = absent
  cptr : cpointer? = absent
  mode : (or/c 'raw 'atomic 'nonatomic 'tagged        = absent
               'atomic-interior 'interior
               'zeroed-atomic 'zeroed-atomic-interior
               'stubborn 'uncollectable 'eternal)
  fail-mode : (or/c 'fail-ok 'failok) = absent
procedure
(free cptr) -> void
  cptr : cpointer?
procedure
(end-stubborn-change cptr) -> void?
  cptr : cpointer?
procedure
(malloc-immobile-cell v) -> cpointer?
  v : any/c
procedure
(free-immobile-cell cptr) -> void?
  cptr : cpointer?
procedure
(register-finalizer obj finalizer) -> void?
  obj : any/c
  finalizer : (any/c . -> . any)
procedure
(make-late-weak-box v) -> weak-box?
  v : any/c
procedure
(make-late-weak-hasheq v) -> (and/c hash? hash-eq? hash-weak?)
  v : any/c
procedure
(make-sized-byte-string cptr length) -> bytes?
  cptr : cpointer?
  length : exact-nonnegative-integer?
procedure
(void/reference-sink v ...) -> void?
  v : any/c
value
prop:cpointer : struct-type-property?
procedure
(make-u8vector len) -> u8vector?
  len : exact-nonnegative-integer?
(u8vector val ...) -> u8vector?
  val : byte?
(u8vector? v) -> boolean?
  v : any/c
(u8vector-length vec) -> exact-nonnegative-integer?
  vec : u8vector?
(u8vector-ref vec k) -> byte?
  vec : u8vector?
  k : exact-nonnegative-integer?
(u8vector-set! vec k val) -> void?
  vec : u8vector?
  k : exact-nonnegative-integer?
  val : byte?
(list->u8vector lst) -> u8vector?
  lst : (listof byte?)
(u8vector->list vec) -> (listof byte?)
  vec : u8vector?
(u8vector->cpointer vec) -> cpointer?
  vec : u8vector?
syntax
(_u8vector mode maybe-len)
_u8vector
procedure
(make-s8vector len) -> s8vector?
  len : exact-nonnegative-integer?
(s8vector val ...) -> s8vector?
  val : (integer-in -128 127)
(s8vector? v) -> boolean?
  v : any/c
(s8vector-length vec) -> exact-nonnegative-integer?
  vec : s8vector?
(s8vector-ref vec k) -> (integer-in -128 127)
  vec : s8vector?
  k : exact-nonnegative-integer?
(s8vector-set! vec k val) -> void?
  vec : s8vector?
  k : exact-nonnegative-integer?
  val : (integer-in -128 127)
(list->s8vector lst) -> s8vector?
  lst : (listof (integer-in -128 127))
(s8vector->list vec) -> (listof (integer-in -128 127))
  vec : s8vector?
(s8vector->cpointer vec) -> cpointer?
  vec : s8vector?
syntax
(_s8vector mode maybe-len)
_s8vector
procedure
(make-s16vector len) -> s16vector?
  len : exact-nonnegative-integer?
(s16vector val ...) -> s16vector?
  val : (integer-in -32768 32767)
(s16vector? v) -> boolean?
  v : any/c
(s16vector-length vec) -> exact-nonnegative-integer?
  vec : s16vector?
(s16vector-ref vec k) -> (integer-in -32768 32767)
  vec : s16vector?
  k : exact-nonnegative-integer?
(s16vector-set! vec k val) -> void?
  vec : s16vector?
  k : exact-nonnegative-integer?
  val : (integer-in -32768 32767)
(list->s16vector lst) -> s16vector?
  lst : (listof (integer-in -32768 32767))
(s16vector->list vec) -> (listof (integer-in -32768 32767))
  vec : s16vector?
(s16vector->cpointer vec) -> cpointer?
  vec : s16vector?
syntax
(_s16vector mode maybe-len)
_s16vector
procedure
(make-u16vector len) -> u16vector?
  len : exact-nonnegative-integer?
(u16vector val ...) -> u16vector?
  val : (integer-in 0 65535)
(u16vector? v) -> boolean?
  v : any/c
(u16vector-length vec) -> exact-nonnegative-integer?
  vec : u16vector?
(u16vector-ref vec k) -> (integer-in 0 65535)
  vec : u16vector?
  k : exact-nonnegative-integer?
(u16vector-set! vec k val) -> void?
  vec : u16vector?
  k : exact-nonnegative-integer?
  val : (integer-in 0 65535)
(list->u16vector lst) -> u16vector?
  lst : (listof (integer-in 0 65535))
(u16vector->list vec) -> (listof (integer-in 0 65535))
  vec : u16vector?
(u16vector->cpointer vec) -> cpointer?
  vec : u16vector?
syntax
(_u16vector mode maybe-len)
_u16vector
procedure
(make-s32vector len) -> s32vector?
  len : exact-nonnegative-integer?
(s32vector val ...) -> s32vector?
  val : (integer-in -2147483648 2147483647)
(s32vector? v) -> boolean?
  v : any/c
(s32vector-length vec) -> exact-nonnegative-integer?
  vec : s32vector?
(s32vector-ref vec k) -> (integer-in -2147483648 2147483647)
  vec : s32vector?
  k : exact-nonnegative-integer?
(s32vector-set! vec k val) -> void?
  vec : s32vector?
  k : exact-nonnegative-integer?
  val : (integer-in -2147483648 2147483647)
(list->s32vector lst) -> s32vector?
  lst : (listof (integer-in -2147483648 2147483647))
(s32vector->list vec)
 -> (listof (integer-in -2147483648 2147483647))
  vec : s32vector?
(s32vector->cpointer vec) -> cpointer?
  vec : s32vector?
syntax
(_s32vector mode maybe-len)
_s32vector
procedure
(make-u32vector len) -> u32vector?
  len : exact-nonnegative-integer?
(u32vector val ...) -> u32vector?
  val : (integer-in 0 4294967295)
(u32vector? v) -> boolean?
  v : any/c
(u32vector-length vec) -> exact-nonnegative-integer?
  vec : u32vector?
(u32vector-ref vec k) -> (integer-in 0 4294967295)
  vec : u32vector?
  k : exact-nonnegative-integer?
(u32vector-set! vec k val) -> void?
  vec : u32vector?
  k : exact-nonnegative-integer?
  val : (integer-in 0 4294967295)
(list->u32vector lst) -> u32vector?
  lst : (listof (integer-in 0 4294967295))
(u32vector->list vec) -> (listof (integer-in 0 4294967295))
  vec : u32vector?
(u32vector->cpointer vec) -> cpointer?
  vec : u32vector?
syntax
(_u32vector mode maybe-len)
_u32vector
procedure
(make-s64vector len) -> s64vector?
  len : exact-nonnegative-integer?
(s64vector val ...) -> s64vector?
  val : (integer-in -9223372036854775808 9223372036854775807)
(s64vector? v) -> boolean?
  v : any/c
(s64vector-length vec) -> exact-nonnegative-integer?
  vec : s64vector?
(s64vector-ref vec k)
 -> (integer-in -9223372036854775808 9223372036854775807)
  vec : s64vector?
  k : exact-nonnegative-integer?
(s64vector-set! vec k val) -> void?
  vec : s64vector?
  k : exact-nonnegative-integer?
  val : (integer-in -9223372036854775808 9223372036854775807)
(list->s64vector lst) -> s64vector?
  lst : (listof (integer-in -9223372036854775808 9223372036854775807))
(s64vector->list vec)
 -> (listof (integer-in -9223372036854775808 9223372036854775807))
  vec : s64vector?
(s64vector->cpointer vec) -> cpointer?
  vec : s64vector?
syntax
(_s64vector mode maybe-len)
_s64vector
procedure
(make-u64vector len) -> u64vector?
  len : exact-nonnegative-integer?
(u64vector val ...) -> u64vector?
  val : (integer-in 0 18446744073709551615)
(u64vector? v) -> boolean?
  v : any/c
(u64vector-length vec) -> exact-nonnegative-integer?
  vec : u64vector?
(u64vector-ref vec k) -> (integer-in 0 18446744073709551615)
  vec : u64vector?
  k : exact-nonnegative-integer?
(u64vector-set! vec k val) -> void?
  vec : u64vector?
  k : exact-nonnegative-integer?
  val : (integer-in 0 18446744073709551615)
(list->u64vector lst) -> u64vector?
  lst : (listof (integer-in 0 18446744073709551615))
(u64vector->list vec)
 -> (listof (integer-in 0 18446744073709551615))
  vec : u64vector?
(u64vector->cpointer vec) -> cpointer?
  vec : u64vector?
syntax
(_u64vector mode maybe-len)
_u64vector
procedure
(make-f32vector len) -> f32vector?
  len : exact-nonnegative-integer?
(f32vector val ...) -> f32vector?
  val : real?
(f32vector? v) -> boolean?
  v : any/c
(f32vector-length vec) -> exact-nonnegative-integer?
  vec : f32vector?
(f32vector-ref vec k) -> real?
  vec : f32vector?
  k : exact-nonnegative-integer?
(f32vector-set! vec k val) -> void?
  vec : f32vector?
  k : exact-nonnegative-integer?
  val : real?
(list->f32vector lst) -> f32vector?
  lst : (listof real?)
(f32vector->list vec) -> (listof real?)
  vec : f32vector?
(f32vector->cpointer vec) -> cpointer?
  vec : f32vector?
syntax
(_f32vector mode maybe-len)
_f32vector
procedure
(make-f64vector len) -> f64vector?
  len : exact-nonnegative-integer?
(f64vector val ...) -> f64vector?
  val : real?
(f64vector? v) -> boolean?
  v : any/c
(f64vector-length vec) -> exact-nonnegative-integer?
  vec : f64vector?
(f64vector-ref vec k) -> real?
  vec : f64vector?
  k : exact-nonnegative-integer?
(f64vector-set! vec k val) -> void?
  vec : f64vector?
  k : exact-nonnegative-integer?
  val : real?
(list->f64vector lst) -> f64vector?
  lst : (listof real?)
(f64vector->list vec) -> (listof real?)
  vec : f64vector?
(f64vector->cpointer vec) -> cpointer?
  vec : f64vector?
syntax
(_f64vector mode maybe-len)
_f64vector
procedure
(make-f80vector len) -> f80vector?
  len : exact-nonnegative-integer?
(f80vector val ...) -> f80vector?
  val : extflonum?
(f80vector? v) -> boolean?
  v : any/c
(f80vector-length vec) -> exact-nonnegative-integer?
  vec : f80vector?
(f80vector-ref vec k) -> extflonum?
  vec : f80vector?
  k : exact-nonnegative-integer?
(f80vector-set! vec k val) -> void?
  vec : f80vector?
  k : exact-nonnegative-integer?
  val : extflonum?
(list->f80vector lst) -> f80vector?
  lst : (listof extflonum?)
(f80vector->list vec) -> (listof extflonum?)
  vec : f80vector?
(f80vector->cpointer vec) -> cpointer?
  vec : f80vector?
syntax
(_f80vector mode maybe-len)
_f80vector
syntax
(_cvector mode type maybe-len)
_cvector
procedure
(make-cvector type length) -> cvector?
  type : ctype?
  length : exact-nonnegative-integer?
procedure
(cvector type val ...) -> cvector?
  type : ctype?
  val : any/c
procedure
(cvector? v) -> boolean?
  v : any/c
procedure
(cvector-length cvec) -> exact-nonnegative-integer?
  cvec : cvector?
procedure
(cvector-type cvec) -> ctype?
  cvec : cvector?
procedure
(cvector-ptr cvec) -> cpointer?
  cvec : cvector?
procedure
(cvector-ref cvec k) -> any
  cvec : cvector?
  k : exact-nonnegative-integer?
procedure
(cvector-set! cvec k val) -> void?
  cvec : cvector?
  k : exact-nonnegative-integer?
  val : any
procedure
(cvector->list cvec) -> list?
  cvec : cvector?
procedure
(list->cvector lst type) -> cvector?
  lst : list?
  type : ctype?
procedure
(make-cvector* cptr type length) -> cvector?
  cptr : any/c
  type : ctype?
  length : exact-nonnegative-integer?
procedure
(_cpointer  tag               
           [ptr-type          
            racket-to-c       
            c-to-racket]) -> ctype?
  tag : any/c
  ptr-type : (or/c ctype? #f) = _pointer
  racket-to-c : (or/c (any/c . -> . any/c) #f) = values
  c-to-racket : (or/c (any/c . -> . any/c) #f) = values
(_cpointer/null  tag               
                [ptr-type          
                 racket-to-c       
                 c-to-racket]) -> ctype?
  tag : any/c
  ptr-type : (or/c ctype? #f) = _pointer
  racket-to-c : (or/c (any/c . -> . any/c) #f) = values
  c-to-racket : (or/c (any/c . -> . any/c) #f) = values
syntax
(define-cpointer-type _id)
(define-cpointer-type _id #:tag tag-expr)
(define-cpointer-type _id ptr-type-expr)
(define-cpointer-type _id ptr-type-expr #:tag tag-expr)
(define-cpointer-type _id ptr-type-expr
                      racket-to-c-expr c-to-racket-expr)
(define-cpointer-type _id ptr-type-expr
                      racket-to-c-expr c-to-racket-expr
                      #:tag tag-expr)
procedure
(cpointer-predicate-procedure? v) -> boolean?
  v : any/c
procedure
(cpointer-has-tag? cptr tag) -> boolean?
  cptr : cpointer?
  tag : any/c
(cpointer-push-tag! cptr tag) -> void?
  cptr : cpointer?
  tag : any/c
syntax
(define-serializable-cstruct _id ([field-id type-expr] ...)
                             property ...)
 
property = #:alignment alignment-expr
         | #:malloc-mode malloc-mode-expr
         | #:serialize-inplace
         | #:deserialize-inplace
         | #:version vers
         | #:other-versions ([other-vers deserialize-chain-expr
                                         convert-proc-expr
                                         unconvert-proc-expr
                                         cycle-convert-proc-expr]
                              ...)
         | #:property prop-expr val-expr
syntax
(_fun fun-option ... maybe-args type-spec ... -> type-spec
      maybe-wrapper)
syntax
(define-ffi-definer define-id ffi-lib-expr
  option ...)
 
option = #:provide provide-id
       | #:define core-define-id
       | #:default-make-fail default-make-fail-expr
       | #:make-c-id make-c-id

(define-id id type-expr
  bind-option ...)
 
bind-option = #:c-id c-id
            | #:c-id (unquote c-id-expr)
            | #:wrap wrap-expr
            | #:make-fail make-fail-expr
            | #:fail fail-expr
            | #:variable
procedure
(make-not-available name) -> procedure?
  name : symbol?
syntax
(provide-protected provide-spec ...)
syntax
convention:hyphen->underscore
syntax
convention:hyphen->camelCase
syntax
convention:hyphen->PascalCase
syntax
convention:hyphen->camelcase
procedure
((allocator  dealloc                                      
            [#:merely-uninterruptible? uninterruptible?]) 
 alloc)                                                   
 -> (or/c procedure? #f)
  dealloc : (any/c . -> . any)
  uninterruptible? : any/c = #f
  alloc : (or/c procedure? #f)
procedure
((deallocator [get-arg                                      
               #:merely-uninterruptible? uninterruptible?]) 
 dealloc)                                                   
 -> procedure?
  get-arg : (list? . -> . any/c) = car
  uninterruptible? : any/c = #f
  dealloc : procedure?
procedure
((releaser [get-arg]) dealloc) -> procedure?
  get-arg : (list? . -> . any/c) = car
  dealloc : procedure?
procedure
((retainer  release                                      
           [get-arg                                      
            #:merely-uninterruptible? uninterruptible?]) 
 retain)                                                 
 -> procedure?
  release : (any/c . -> . any)
  get-arg : (list? . -> . any/c) = car
  uninterruptible? : any/c = #f
  retain : procedure?
procedure
(register-custodian-shutdown  v                         
                              callback                  
                             [custodian                 
                              #:at-exit? at-exit?       
                              #:weak? weak?             
                              #:ordered? ordered?]) -> cpointer?
  v : any/c
  callback : (any/c . -> . any)
  custodian : custodian? = (current-custodian)
  at-exit? : any/c = #f
  weak? : any/c = #f
  ordered? : any/c = #f
procedure
(unregister-custodian-shutdown v                 
                               registration) -> void?
  v : any/c
  registration : cpointer?
procedure
(register-finalizer-and-custodian-shutdown                                                 
                                            v                                              
                                            callback                                       
                                           [custodian                                      
                                            #:at-exit? at-exit?                            
                                            #:custodian-available available-callback       
                                            #:custodian-unavailable unavailable-callback]) 
 -> any
  v : any/c
  callback : (any/c . -> . any)
  custodian : custodian? = (current-custodian)
  at-exit? : any/c = #f
  available-callback : ((any/c . -> . void?) . -> . any)
                     = (lambda (unreg) (void))
  unavailable-callback : ((-> void?) . -> . any)
                       = (lambda (reg-fnl) (reg-fnl))
procedure
(make-custodian-at-root) -> custodian?
procedure
(start-atomic) -> void?
procedure
(end-atomic) -> void?
procedure
(start-breakable-atomic) -> void?
procedure
(end-breakable-atomic) -> void?
procedure
(call-as-atomic thunk) -> any
  thunk : (-> any)
procedure
(call-as-nonatomic thunk) -> any
  thunk : (-> any)
procedure
(in-atomic-mode?) -> boolean?
procedure
(start-uninterruptible) -> void?
procedure
(end-uninterruptible) -> void?
procedure
(call-as-uninterruptible thunk) -> any
  thunk : (-> any)
procedure
(make-uninterruptible-lock) -> any/c
procedure
(uninterruptible-lock-acquire lock) -> void?
  lock : any/c
procedure
(uninterruptible-lock-release lock) -> void?
  lock : any/c
procedure
(call-as-nonatomic-retry-point thunk) -> any
  thunk : (-> any)
procedure
(try-atomic  thunk                                 
             default-val                           
            [#:should-give-up? give-up-proc        
             #:keep-in-order? keep-in-order?]) -> any
  thunk : (-> any)
  default-val : any/c
  give-up-proc : (-> any/c) = run-200-milliseconds
  keep-in-order? : any/c = #t
procedure
(unsafe-poller poll) -> any/c
  poll : (evt? (or/c #f any/c) . -> . (values (or/c #f list?) evt?))
procedure
(unsafe-poll-fd fd mode [socket?]) -> boolean?
  fd : exact-integer?
  mode : '(read write)
  socket? : any/c = #t
procedure
(unsafe-poll-ctx-fd-wakeup wakeups fd mode) -> void?
  wakeups : any/c
  fd : fixnum?
  mode : '(read write error)
procedure
(unsafe-poll-ctx-eventmask-wakeup wakeups     
                                  mask)   -> void?
  wakeups : any/c
  mask : fixnum?
procedure
(unsafe-poll-ctx-milliseconds-wakeup wakeups     
                                     msecs)  -> void?
  wakeups : any/c
  msecs : flonum?
procedure
(unsafe-set-sleep-in-thread! foreground-sleep     
                             fd)              -> void?
  foreground-sleep : (-> any/c)
  fd : fixnum?
procedure
(unsafe-signal-received) -> void?
procedure
(unsafe-make-signal-received) -> (-> void?)
procedure
(unsafe-file-descriptor->port fd name mode)
 -> (or/c port? (values input-port? output-port?))
  fd : exact-integer?
  name : any/c
  mode : (listof (or/c 'read 'write 'text 'regular-file))
procedure
(unsafe-socket->port socket name mode) -> input-port? output-port?
  socket : exact-integer?
  name : bytes?
  mode : (listof (or/c 'no-close))
procedure
(unsafe-port->file-descriptor p) -> (or/c exact-integer? #f)
  p : port?
procedure
(unsafe-port->socket p) -> (or/c exact-integer? #f)
  p : port?
procedure
(unsafe-file-descriptor->semaphore fd mode)
 -> (or/c semaphore? #f)
  fd : exact-integer?
  mode : (or/c 'read 'write 'check-read 'check-write 'remove)
procedure
(unsafe-socket->semaphore socket mode) -> (or/c semaphore? #f)
  socket : exact-integer?
  mode : (or/c 'read 'write 'check-read 'check-write 'remove)
procedure
(unsafe-fd->evt fd mode [socket?]) -> (or/c evt? #f)
  fd : exact-integer?
  mode : (or/c 'read 'write 'check-read 'check-write 'remove)
  socket? : any/c = #t
procedure
(register-process-global key val) -> cpointer?
  key : bytes?
  val : cpointer?
procedure
(get-place-table) -> hash?
procedure
(os-thread-enabled?) -> boolean?
procedure
(call-in-os-thread thunk) -> void?
  thunk : (-> any)
procedure
(make-os-semaphore) -> any
procedure
(os-semaphore-post sema) -> void?
  sema : any/c
procedure
(os-semaphore-wait sema) -> void?
  sema : any/c
procedure
(make-os-async-channel) -> os-async-channel?
procedure
(os-async-channel? v) -> boolean?
  v : any/c
procedure
(os-async-channel-put ch v) -> void?
  ch : os-async-channel?
  v : any/c
procedure
(os-async-channel-try-get ch [default-v]) -> any/c
  ch : os-async-channel?
  default-v : any/c = #f
procedure
(os-async-channel-get ch) -> any/c
  ch : os-async-channel?
procedure
(unsafe-add-collect-callbacks pre post) -> any/c
  pre : (vectorof vector?)
  post : (vectorof vector?)
procedure
(unsafe-remove-collect-callbacks key) -> void?
  key : any/c
value
_id : ctype?
value
_Class : ctype?
value
_Protocol : ctype?
value
_SEL : ctype?
value
_BOOL : ctype?
value
YES : boolean?
value
NO : boolean?
syntax
(tell result-type obj-expr method-id)
(tell result-type obj-expr arg ...)
 
result-type = 
            | #:type ctype-expr
               
        arg = method-id arg-expr
            | method-id #:type ctype-expr arg-expr
syntax
(tellv obj-expr method-id)
(tellv obj-expr arg ...)
syntax
(import-class class-id ...)
syntax
(import-protocol protocol-id ...)
syntax
(define-objc-class class-id superclass-expr
  maybe-mixins
  maybe-protocols
  [field-id ...]
  method ...)
 
   maybe-mixins = 
                | #:mixins (mixin-expr ...)
                   
maybe-protocols = 
                | #:protocols (protocol-expr ...)
                   
         method = (mode maybe-async result-ctype-expr (method-id) body ...+)
                | (mode maybe-async result-ctype-expr (arg ...+) body ...+)
                   
           mode = +
                | -
                | +a
                | -a
                   
    maybe-async = 
                | #:async-apply async-apply-expr
                   
            arg = method-id [ctype-expr arg-id]
syntax
(define-objc-mixin (class-id superclass-id)
  maybe-mixins
  maybe-protocols
  [field-id ...]
  method ...)
syntax
self
syntax
(super-tell result-type method-id)
(super-tell result-type arg ...)
syntax
(get-ivar obj-expr field-id)
syntax
(set-ivar! obj-expr field-id value-expr)
syntax
(selector method-id)
procedure
(objc-is-a? obj cls) -> boolean?
  obj : _id
  cls : _Class
procedure
(objc-subclass? subcls cls) -> boolean?
  subcls : _Class
  cls : _Class
procedure
(objc-get-class obj) -> _Class
  obj : _id
procedure
(objc-set-class! obj cls) -> void?
  obj : _id
  cls : _Class
procedure
(objc-get-superclass cls) -> _Class
  cls : _Class
procedure
(objc-class-has-instance-method? cls sel) -> boolean?
  cls : _Class
  sel : _SEL
procedure
(objc-dispose-class cls) -> void?
  cls : _Class
procedure
(objc-block function-type? proc #:keep keep) -> cpointer?
  function-type? : ctype
  proc : procedure?
  keep : (box/c list?)
procedure
(objc-block-function-pointer block) -> fpointer?
  block : cpointer?
syntax
(with-blocking-tell form ...+)
procedure
(objc_lookUpClass s) -> (or/c _Class #f)
  s : string?
procedure
(objc_getProtocol s) -> (or/c _Protocol #f)
  s : string?
procedure
(sel_registerName s) -> _SEL
  s : string?
procedure
(objc_allocateClassPair cls s extra) -> _Class
  cls : _Class
  s : string?
  extra : integer?
procedure
(objc_registerClassPair cls) -> void?
  cls : _Class
procedure
(object_getClass obj) -> _Class
  obj : _id
procedure
(class_getSuperclass cls) -> _Class
  cls : _Class
procedure
(class_addMethod cls                
                 sel                
                 imp                
                 type               
                 type-encoding) -> boolean?
  cls : _Class
  sel : _SEL
  imp : procedure?
  type : ctype?
  type-encoding : string?
procedure
(class_addIvar cls                
               name               
               size               
               log-alignment      
               type-encoding) -> boolean?
  cls : _Class
  name : string?
  size : exact-nonnegative-integer?
  log-alignment : exact-nonnegative-integer?
  type-encoding : string?
procedure
(object_getInstanceVariable obj name) -> _Ivar any/c
  obj : _id
  name : string?
procedure
(object_setInstanceVariable obj name val) -> _Ivar
  obj : _id
  name : string?
  val : any/c
value
_Ivar : ctype?
procedure
((objc_msgSend/typed types) obj sel arg) -> any/c
  types : (vector/c result-ctype arg-ctype ...)
  obj : _id
  sel : _SEL
  arg : any/c
procedure
((objc_msgSendSuper/typed types)     
 super                               
 sel                                 
 arg)                            -> any/c
  types : (vector/c result-ctype arg-ctype ...)
  super : _objc_super
  sel : _SEL
  arg : any/c
procedure
(make-objc_super id super) -> _objc_super
  id : _id
  super : _Class
value
_objc_super : ctype?
procedure
((objc_msgSend/typed/blocking types)     
 obj                                     
 sel                                     
 arg)                                -> any/c
  types : (vector/c result-ctype arg-ctype ...)
  obj : _id
  sel : _SEL
  arg : any/c
procedure
((objc_msgSendSuper/typed/blocking types)     
 super                                        
 sel                                          
 arg)                                     -> any/c
  types : (vector/c result-ctype arg-ctype ...)
  super : _objc_super
  sel : _SEL
  arg : any/c
syntax
(objc-unsafe!)
value
_NSString : ctype?
procedure
(call-with-autorelease thunk) -> any
  thunk : (-> any)
syntax
(with-autorelease expr)
procedure
(guid? v) -> boolean?
  v : any/c
procedure
(clsid? v) -> boolean?
  v : any/c
procedure
(iid? v) -> boolean?
  v : any/c
procedure
(string->guid str) -> guid?
  str : string?
procedure
(string->clsid str) -> clsid?
  str : string?
procedure
(string->iid str) -> iid?
  str : string?
procedure
(guid->string g) -> string?
  g : guid?
procedure
(guid=? g1 g2) -> boolean?
  g1 : guid?
  g2 : guid?
procedure
(progid->clsid progid) -> clsid?
  progid : string?
procedure
(clsid->progid clsid) -> (or/c string? #f)
  clsid : clsid?
procedure
(com-object? obj) -> boolean?
  obj : com-object?
procedure
(com-create-instance clsid-or-progid [where]) -> com-object?
  clsid-or-progid : (or/c clsid? string?)
  where : (or/c 'local 'remote string?) = 'local
procedure
(com-release obj) -> void?
  obj : com-object?
procedure
(com-get-active-object clsid-or-progid) -> com-object?
  clsid-or-progid : (or/c clsid? string?)
procedure
(com-object-clsid obj) -> clsid?
  obj : com-object?
procedure
(com-object-set-clsid! obj clsid) -> void?
  obj : com-object?
  clsid : clsid?
procedure
(com-object-eq? obj1 obj2) -> boolean?
  obj1 : com-object?
  obj2 : com-object?
procedure
(com-type? v) -> boolean?
  v : any/c
procedure
(com-object-type obj) -> com-type?
  obj : com-object?
procedure
(com-type=? t1 t2) -> boolean?
  t1 : com-type?
  t2 : com-type?
procedure
(com-methods obj/type) -> (listof string?)
  obj/type : (or/c com-object? com-type?)
procedure
(com-method-type obj/type method-name)
 -> (list/c '-> (listof type-description?)
                type-description?)
  obj/type : (or/c com-object? com-type?)
  method-name : string?
procedure
(com-invoke obj method-name v ...) -> any/c
  obj : com-object?
  method-name : string?
  v : any/c
value
com-omit : any/c
procedure
(com-omit? v) -> boolean?
  v : any/c
procedure
(com-get-properties obj/type) -> (listof string?)
  obj/type : (or/c com-object? com-type?)
procedure
(com-get-property-type obj/type       
                       property-name) 
 -> (list/c '-> '() type-description?)
  obj/type : (or/c com-object? com-type?)
  property-name : string?
procedure
(com-get-property obj property ...+) -> any/c
  obj : com-object?
  property : (or/c string?
                   (cons/c string? list?))
procedure
(com-get-property* obj property v ...) -> any/c
  obj : com-object?
  property : string?
  v : any/c
procedure
(com-set-properties obj/type) -> (listof string?)
  obj/type : (or/c com-object? com-type?)
procedure
(com-set-property-type obj/type       
                       property-name) 
 -> (list/c '-> (list/c type-description?) 'void)
  obj/type : (or/c com-object? com-type?)
  property-name : string?
procedure
(com-set-property! obj property ...+ v) -> void?
  obj : com-object?
  property : (or/c string?
                   (cons/c string? list?))
  v : any/c
procedure
(com-events obj/type) -> (listof string?)
  obj/type : (or/c com-object? com-type?)
procedure
(com-event-type obj/type event-name)
 -> (list/c '-> (listof type-description?) 'void)
  obj/type : (or/c com-object? com-type?)
  event-name : string?
procedure
(com-event-executor? v) -> boolean?
  v : any/c
procedure
(com-make-event-executor) -> com-event-executor?
procedure
(com-register-event-callback obj            
                             name           
                             proc           
                             com-ev-ex) -> void?
  obj : com-object?
  name : string?
  proc : procedure?
  com-ev-ex : com-event-executor?
procedure
(com-unregister-event-callback obj name) -> void?
  obj : com-object?
  name : string?
procedure
(com-enumerate-to-list obj) -> list?
  obj : com-object?
procedure
(com-enumeration-to-list obj) -> list?
  obj : com-object?
procedure
(com-object-get-iunknown obj) -> com-iunkown?
  obj : com-object?
procedure
(com-object-get-idispatch obj) -> com-idispatch?
  obj : com-object?
procedure
(com-iunknown? v) -> boolean?
  v : any/c
procedure
(com-idispatch? v) -> boolean?
  v : any/c
procedure
(type-description? v) -> boolean?
  v : any/c
procedure
(type-described? v) -> boolean?
  v : any/c
procedure
(type-describe v desc) -> type-described?
  v : any/c
  desc : type-description?
procedure
(type-described-value td) -> any/c
  td : type-described?
procedure
(type-described-description td) -> type-description?
  td : type-described?
procedure
(com-all-coclasses) -> (listof string?)
procedure
(com-all-controls) -> (listof string?)
procedure
(coclass->clsid coclass) -> clsid?
  coclass : string?
procedure
(clsid->coclass clsid) -> string?
  clsid : clsid?
syntax
(define-com-interface (_id _super-id)
  ([method-id ctype-expr maybe-alloc-spec] ...))
 
maybe-alloc-spec = 
                 | #:release-with-function function-id
                 | #:release-with-method method-id
                 | #:releases
procedure
(QueryInterface iunknown               
                iid                    
                intf-pointer-type) -> (or/c cpointer? #f)
  iunknown : com-iunknown?
  iid : iid?
  intf-pointer-type : ctype?
procedure
(AddRef iunknown) -> exact-positive-integer?
  iunknown : com-iunknown?
procedure
(Release iunknown) -> exact-nonnegative-integer?
  iunknown : com-iunknown?
procedure
(make-com-object  iunknown                
                  clsid                   
                 [#:manage? manage?]) -> com-object?
  iunknown : com-iunknown?
  clsid : (or/c clsid? #f)
  manage? : any/c = #t
syntax
(_wfun fun-option ... maybe-args type-spec ... -> type-spec
   maybe-wrapper)
syntax
(_mfun fun-option ... maybe-args type-spec ... -> type-spec
   maybe-wrapper)
syntax
(_hfun fun-option ... type-spec ... -> id maybe-allow output-expr)
 
maybe-allow = 
            | #:allow [result-id allow?-expr]
syntax
(_hmfun fun-option ... type-spec ... -> id output-expr)
parameter
(current-hfun-retry-count) -> count
(current-hfun-retry-count exact-nonnegative-integer?) -> void?
  exact-nonnegative-integer? : count
parameter
(current-hfun-retry-delay) -> (>=/c 0.0)
(current-hfun-retry-delay secs) -> void?
  secs : (>=/c 0.0)
procedure
(HRESULT-retry? r) -> boolean?
  r : exact-nonnegative-integer?
value
_GUID : ctype?
value
_GUID-pointer : ctype?
value
_HRESULT : ctype?
value
_LCID : ctype?
value
LOCALE_SYSTEM_DEFAULT : exact-integer?
procedure
(SysFreeString str) -> void?
  str : _pointer
procedure
(SysAllocStringLen content len) -> cpointer?
  content : _pointer
  len : integer?
value
IID_NULL : iid?
value
IID_IUnknown : iid?
value
_IUnknown : ctype?
value
_IUnknown-pointer : ctype?
value
_IUnknown_vt : ctype?
procedure
(windows-error msg hresult) -> any
  msg : string?
  hresult : exact-integer?
procedure
(security-guard-check-file who path perms) -> void?
  who : symbol?
  path : path-string?
  perms : (listof (or/c 'read 'write 'execute 'delete 'exists))
procedure
(_file/guard perms [who]) -> ctype?
  perms : (listof (or/c 'read 'write 'execute 'delete 'exists))
  who : symbol? = '_file/guard
value
_file/r : ctype?
value
_file/rw : ctype?
procedure
(security-guard-check-file-link who       
                                path      
                                dest) -> void?
  who : symbol?
  path : path-string?
  dest : path-string?
procedure
(security-guard-check-network who       
                              host      
                              port      
                              mode) -> void?
  who : symbol?
  host : (or/c string? #f)
  port : (or/c (integer-in 1 65535) #f)
  mode : (or/c 'client 'server)
value
win64? : boolean?
value
winapi : (or/c 'stdcall 'default)
procedure
(vm-primitive name) -> any/c
  name : symbol?
procedure
(vm-eval s-expr) -> any/c
  s-expr : any/c
syntax
(define-runtime-lib id
   maybe-ffi-lib-args
   [platform-spec lib-spec ...]
   ...
   [else else-body ...+])
 
     platform-spec = os-id
                   | os*-id
                   | arch-id
                   | platform-string
                   | 32
                   | 64
                   | (or platform-spec ...)
                   | (and platform-spec ...)
                      
          lib-spec = (so lib-string)
                   | (so lib-string (vers ...))
                      
              vers = string
                   | #f
                      
maybe-ffi-lib-args = 
                   | #:ffi-lib-args (arg ...)
procedure
(list->cblock  lst                             
               type                            
              [expect-length                   
               #:malloc-mode malloc-mode]) -> cpointer?
  lst : list?
  type : ctype?
  expect-length : (or/c exact-nonnegative-integer? #f) = #f
  malloc-mode : (or/c #f symbol?) = #f
procedure
(vector->cblock  vec                             
                 type                            
                [expect-length                   
                 #:malloc-mode malloc-mode]) -> cpointer?
  vec : vector?
  type : ctype?
  expect-length : (or/c exact-nonnegative-integer? #f) = #f
  malloc-mode : (or/c #f symbol?) = #f
procedure
(vector->cpointer vec) -> cpointer?
  vec : vector?
procedure
(flvector->cpointer flvec) -> cpointer?
  flvec : flvector?
procedure
(saved-errno) -> exact-integer?
(saved-errno new-value) -> void?
  new-value : exact-integer?
procedure
(lookup-errno sym) -> (or/c exact-integer? #f)
  sym : symbol?
procedure
(cast v from-type to-type) -> any/c
  v : any/c
  from-type : ctype?
  to-type : ctype?
procedure
(cblock->list cblock type length) -> list?
  cblock : any/c
  type : ctype?
  length : exact-nonnegative-integer?
procedure
(cblock->vector cblock type length) -> vector?
  cblock : any/c
  type : ctype?
  length : exact-nonnegative-integer?
procedure
(ffi-obj objname lib) -> ffi-obj?
  objname : bytes?
  lib : (or/c ffi-lib? path-string? #f)
procedure
(ffi-obj? x) -> boolean?
  x : any/c
(ffi-obj-lib obj) -> ffi-lib?
  obj : ffi-obj?
(ffi-obj-name obj) -> bytes?
  obj : ffi-obj?
procedure
(ctype-basetype type) -> (or/c ctype? #f)
  type : ctype?
(ctype-scheme->c type) -> procedure?
  type : ctype?
(ctype-c->scheme type) -> procedure?
  type : ctype?
procedure
(ffi-call  ptr                 
           in-types            
           out-type            
          [abi                 
           save-errno?         
           orig-place?         
           lock-name           
           blocking?           
           varargs-after]) -> procedure?
  ptr : cpointer?
  in-types : (listof ctype?)
  out-type : ctype?
  abi : (or/c #f 'default 'stdcall 'sysv) = #f
  save-errno? : any/c = #f
  orig-place? : any/c = #f
  lock-name : (or/c #f string?) = #f
  blocking? : any/c = #f
  varargs-after : (or/c #f positive-exact-integer?) = #f
procedure
(ffi-call-maker  in-types            
                 out-type            
                [abi                 
                 save-errno?         
                 orig-place?         
                 lock-name           
                 blocking?           
                 varargs-after]) -> (cpointer . -> . procedure?)
  in-types : (listof ctype?)
  out-type : ctype?
  abi : (or/c #f 'default 'stdcall 'sysv) = #f
  save-errno? : any/c = #f
  orig-place? : any/c = #f
  lock-name : (or/c #f string?) = #f
  blocking? : any/c = #f
  varargs-after : (or/c #f positive-exact-integer?) = #f
procedure
(ffi-callback  proc                
               in-types            
               out-type            
              [abi                 
               atomic?             
               async-apply         
               varargs-after]) -> ffi-callback?
  proc : procedure?
  in-types : any/c
  out-type : any/c
  abi : (or/c #f 'default 'stdcall 'sysv) = #f
  atomic? : any/c = #f
  async-apply : (or/c #f ((-> any) . -> . any) box?) = #f
  varargs-after : (or/c #f positive-exact-integer?) = #f
procedure
(ffi-callback-maker  in-types        
                     out-type        
                    [abi             
                     atomic?         
                     async-apply     
                     varargs-after]) 
 -> (procedure? . -> . ffi-callback?)
  in-types : any/c
  out-type : any/c
  abi : (or/c #f 'default 'stdcall 'sysv) = #f
  atomic? : any/c = #f
  async-apply : (or/c #f ((-> any) . -> . any) box?) = #f
  varargs-after : (or/c #f positive-exact-integer?) = #f
procedure
(ffi-callback? v) -> boolean?
  v : any/c
procedure
(make-late-will-executor) -> will-executor?
