27642
((3) 0 () 50 ((q lib "ffi/unsafe/define.rkt") (q lib "ffi/unsafe.rkt") (q quote #%foreign) (q lib "ffi/vector.rkt") (q 22309 . 23) (q lib "ffi/unsafe/port.rkt") (q lib "ffi/unsafe/com.rkt") (q 17206 . 22) (q 18825 . 22) (q lib "ffi/unsafe/atomic.rkt") (q lib "ffi/unsafe/objc.rkt") (q 2781 . 16) (q 19629 . 23) (q 3610 . 4) (q 17996 . 22) (q 2639 . 4) (q lib "ffi/unsafe/os-async-channel.rkt") (q lib "ffi/unsafe/schedule.rkt") (q 23918 . 22) (q 2412 . 13) (q 16496 . 22) (q lib "ffi/unsafe/cvector.rkt") (q lib "ffi/file.rkt") (q 20509 . 22) (q lib "ffi/unsafe/os-thread.rkt") (q lib "ffi/unsafe/define/conventions.rkt") (q lib "ffi/unsafe/alloc.rkt") (q 24647 . 22) (q 23189 . 22) (q 21338 . 24) (q 52742 . 7) (q lib "ffi/unsafe/collect-callback.rkt") (q 52581 . 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 27738 . 7) (q lib "ffi/unsafe/nsalloc.rkt") (q lib "ffi/unsafe/try-atomic.rkt") (q 13062 . 25) (q 26448 . 17)) () (h ! (equal) ((c form c (c (? . 0) q define-ffi-definer)) q (28797 . 8)) ((c def c (c (? . 0) q make-not-available)) q (29300 . 3)) ((c def c (c (? . 3) q u64vector->list)) c (? . 4)) ((c def c (c (? . 5) q unsafe-port->file-descriptor)) q (35251 . 3)) ((c form c (c (? . 1) q _vector)) q (7984 . 2)) ((c def c (c (? . 2) q ffi-call)) q (52939 . 19)) ((c def c (c (? . 1) q _string*/latin-1)) c (? . 13)) ((c def c (c (? . 6) q progid->clsid)) q (42818 . 3)) ((c def c (c (? . 9) q end-uninterruptible)) q (33035 . 2)) ((c form c (c (? . 25) q convention:hyphen->underscore)) q (29420 . 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 (16097 . 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 (34851 . 6)) ((c def c (c (? . 5) q unsafe-file-descriptor->semaphore)) q (35426 . 5)) ((c def c (c (? . 3) q f64vector->list)) c (? . 18)) ((c def c (c (? . 2) q make-late-will-executor)) q (55578 . 2)) ((c def c (c (? . 2) q ctype-scheme->c)) c (? . 30)) ((c def c (c (? . 10) q YES)) q (37154 . 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 (47075 . 3)) ((c def c (c (? . 6) q com-enumerate-to-list)) q (46410 . 3)) ((c def c (c (? . 22) q _file/guard)) q (49968 . 4)) ((c def c (c (? . 5) q unsafe-port->socket)) q (35343 . 3)) ((c def c (c (? . 6) q com-set-property-type)) q (45154 . 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 (45918 . 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 (48007 . 3)) ((c def c (c (? . 9) q call-as-nonatomic)) q (32878 . 3)) ((c def c (c (? . 10) q objc_msgSend/typed/blocking)) q (41553 . 9)) ((c def c (c (? . 2) q malloc)) q (14966 . 17)) ((c def c (c (? . 6) q com-create-instance)) q (43033 . 4)) ((c def c (c (? . 1) q _sbyte)) c (? . 15)) ((c form c (c (? . 10) q get-ivar)) q (38609 . 2)) ((c def c (c (? . 1) q vector->cblock)) q (51326 . 9)) ((c def c (c (? . 3) q list->s32vector)) c (? . 12)) ((c def c (c (? . 37) q register-finalizer-and-custodian-shutdown)) q (31543 . 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 (36533 . 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 (27918 . 15)) ((c def c (c (? . 6) q type-description?)) q (46848 . 3)) ((c def c (c (? . 36) q coclass->clsid)) q (47348 . 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 (42564 . 3)) ((c def c (c (? . 3) q u8vector-set!)) c (? . 20)) ((c form c (c (? . 3) q _u8vector)) q (17160 . 3)) ((c def c (c (? . 1) q _racket)) q (3961 . 2)) ((c form c (c (? . 3) q _u32vector)) q (21290 . 3)) ((c def c (c (? . 2) q ptr-offset)) q (12633 . 3)) ((c def c (c (? . 6) q Release)) q (48096 . 3)) ((c def c (c (? . 24) q os-semaphore-wait)) q (36347 . 3)) ((c def c (c (? . 21) q cvector->list)) q (26153 . 3)) ((c def c (c (? . 3) q list->s64vector)) c (? . 29)) ((c def c (c (? . 6) q com-omit)) q (44338 . 2)) ((c def c (c (? . 10) q objc_msgSend/typed)) q (40960 . 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 (48189 . 7)) ((c def c (c (? . 6) q com-method-type)) q (43988 . 6)) ((c def c (c (? . 17) q unsafe-poller)) q (33826 . 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 (36629 . 4)) ((c def c (c (? . 1) q _string*/locale)) c (? . 13)) ((c def c (c (? . 17) q unsafe-signal-received)) q (34748 . 2)) ((c def c (c (? . 3) q u64vector->cpointer)) c (? . 4)) ((c def c (c (? . 38) q vm-primitive)) q (50818 . 3)) ((c def c (c (? . 9) q end-breakable-atomic)) q (32767 . 2)) ((c def c (c (? . 6) q com-set-properties)) q (45042 . 3)) ((c def c (c (? . 3) q make-f64vector)) c (? . 18)) ((c def c (c (? . 10) q class_getSuperclass)) q (39927 . 3)) ((c def c (c (? . 10) q objc-block-function-pointer)) q (39337 . 3)) ((c def c (c (? . 6) q current-hfun-retry-delay)) q (49015 . 4)) ((c def c (c (? . 10) q class_addIvar)) q (40333 . 11)) ((c def c (c (? . 10) q _Class)) q (37058 . 2)) ((c def c (c (? . 1) q _sint64)) c (? . 19)) ((c def c (c (? . 17) q unsafe-poll-ctx-milliseconds-wakeup)) q (34400 . 5)) ((c def c (c (? . 6) q type-described?)) q (46911 . 3)) ((c def c (c (? . 1) q _sint32)) c (? . 19)) ((c def c (c (? . 10) q objc-get-class)) q (38904 . 3)) ((c def c (c (? . 10) q NO)) q (37177 . 2)) ((c def c (c (? . 2) q ffi-callback-maker)) q (54955 . 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 (36754 . 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 (36413 . 2)) ((c def c (c (? . 21) q cvector-set!)) q (26028 . 5)) ((c def c (c (? . 3) q s32vector-set!)) c (? . 12)) ((c def c (c (? . 10) q class_addMethod)) q (39995 . 11)) ((c def c (c (? . 9) q uninterruptible-lock-acquire)) q (33203 . 3)) ((c def c (c (? . 9) q start-uninterruptible)) q (32990 . 2)) ((c def c (c (? . 1) q _int)) c (? . 11)) ((c def c (c (? . 9) q call-as-uninterruptible)) q (33078 . 3)) ((c def c (c (? . 2) q prop:cpointer)) q (16450 . 2)) ((c def c (c (? . 22) q _file/r)) q (50129 . 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 (39423 . 2)) ((c def c (c (? . 24) q make-os-semaphore)) q (36242 . 2)) ((c def c (c (? . 22) q security-guard-check-network)) q (50410 . 9)) ((c def c (c (? . 26) q releaser)) q (30232 . 4)) ((c form c (c (? . 25) q convention:hyphen->camelCase)) q (29457 . 2)) ((c def c (c (? . 6) q _IUnknown)) q (49589 . 2)) ((c def c (c (? . 6) q com-object-get-idispatch)) q (46643 . 3)) ((c def c (c (? . 26) q retainer)) q (30365 . 10)) ((c def c (c (? . 21) q make-cvector*)) q (26307 . 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 (38727 . 4)) ((c form c (c (? . 10) q import-class)) q (37521 . 2)) ((c def c (c (? . 9) q make-uninterruptible-lock)) q (33154 . 2)) ((c def c (c (? . 31) q unsafe-remove-collect-callbacks)) q (36959 . 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 (37082 . 2)) ((c def c (c (? . 2) q _uint32)) c (? . 19)) ((c def c (c (? . 10) q _id)) q (37037 . 2)) ((c def c (c (? . 1) q union-set!)) q (11792 . 5)) ((c def c (c (? . 10) q objc_lookUpClass)) q (39463 . 3)) ((c def c (c (? . 6) q com-get-property*)) q (44913 . 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 (49369 . 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 (42503 . 3)) ((c def c (c (? . 31) q unsafe-add-collect-callbacks)) q (36831 . 4)) ((c def c (c (? . 2) q _uint8)) c (? . 19)) ((c def c (c (? . 2) q ffi-callback)) q (54351 . 15)) ((c def c (c (? . 6) q com-idispatch?)) q (46788 . 3)) ((c def c (c (? . 3) q u16vector->list)) c (? . 8)) ((c def c (c (? . 6) q com-object-set-clsid!)) q (43464 . 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 (25860 . 3)) ((c def c (c (? . 2) q _scheme)) q (3986 . 2)) ((c def c (c (? . 6) q com-event-executor?)) q (45853 . 3)) ((c def c (c (? . 2) q free-immobile-cell)) q (15911 . 3)) ((c def c (c (? . 26) q allocator)) q (29566 . 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 (49561 . 2)) ((c def c (c (? . 6) q com-get-properties)) q (44418 . 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 (25451 . 4)) ((c def c (c (? . 10) q object_setInstanceVariable)) q (40816 . 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 (41524 . 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 (55519 . 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 (37457 . 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 (42627 . 3)) ((c def c (c (? . 10) q objc-subclass?)) q (38809 . 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 (49537 . 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 (50941 . 9)) ((c def c (c (? . 3) q u16vector)) c (? . 8)) ((c form c (c (? . 10) q selector)) q (38698 . 2)) ((c def c (c (? . 3) q make-u16vector)) c (? . 8)) ((c def c (c (? . 6) q com-event-type)) q (45673 . 5)) ((c form c (c (? . 10) q self)) q (38517 . 2)) ((c form c (c (? . 10) q define-objc-mixin)) q (38390 . 6)) ((c def c (c (? . 1) q void/reference-sink)) q (16383 . 3)) ((c def c (c (? . 1) q union-ptr)) q (11905 . 3)) ((c def c (c (? . 22) q security-guard-check-file-link)) q (50180 . 7)) ((c def c (c (? . 3) q make-s32vector)) c (? . 12)) ((c def c (c (? . 2) q lookup-errno)) q (51980 . 3)) ((c def c (c (? . 10) q objc_msgSendSuper/typed/blocking)) q (41859 . 9)) ((c def c (c (? . 10) q _SEL)) q (37109 . 2)) ((c def c (c (? . 40) q get-place-table)) q (36086 . 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 (27663 . 3)) ((c def c (c (? . 3) q list->f32vector)) c (? . 28)) ((c def c (c (? . 6) q _IUnknown-pointer)) q (49616 . 2)) ((c form c (c (? . 0) q provide-protected)) q (29374 . 2)) ((c def c (c (? . 3) q make-f32vector)) c (? . 28)) ((c form c (c (? . 3) q _s8vector)) q (17950 . 3)) ((c def c (c (? . 9) q call-as-atomic)) q (32811 . 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 (46972 . 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 (43278 . 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 (48790 . 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 (35788 . 5)) ((c form c (c (? . 10) q define-objc-class)) q (37601 . 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 (35077 . 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 (44210 . 5)) ((c def c (c (? . 10) q objc-set-class!)) q (38964 . 4)) ((c def c (c (? . 3) q f32vector-set!)) c (? . 28)) ((c def c (c (? . 6) q guid=?)) q (42743 . 4)) ((c def c (c (? . 6) q guid->string)) q (42686 . 3)) ((c def c (c (? . 6) q LOCALE_SYSTEM_DEFAULT)) q (49322 . 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 (49273 . 2)) ((c def c (c (? . 2) q _fpointer)) q (4011 . 2)) ((c def c (c (? . 6) q com-get-property)) q (44745 . 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 (47420 . 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 (45979 . 9)) ((c def c (c (? . 6) q _IUnknown_vt)) q (49651 . 2)) ((c form c (c (? . 6) q _hfun)) q (48637 . 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 (42350 . 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 (37558 . 2)) ((q form ((lib "ffi/unsafe/static.rkt") _fun)) q (28697 . 3)) ((c def c (c (? . 6) q HRESULT-retry?)) q (49138 . 3)) ((c def c (c (? . 6) q iid?)) q (42453 . 3)) ((c def c (c (? . 10) q objc_allocateClassPair)) q (39674 . 5)) ((c def c (c (? . 44) q win64?)) q (50748 . 2)) ((c def c (c (? . 1) q _ushort)) c (? . 11)) ((c form c (c (? . 3) q _f64vector)) q (24599 . 3)) ((c def c (c (? . 3) q f80vector->list)) c (? . 27)) ((c def c (c (? . 37) q register-custodian-shutdown)) q (30783 . 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 (15772 . 3)) ((c def c (c (? . 3) q s8vector->cpointer)) c (? . 7)) ((c def c (c (? . 21) q cvector-length)) q (25708 . 3)) ((c def c (c (? . 2) q _double)) c (? . 42)) ((c def c (c (? . 6) q com-object?)) q (42966 . 3)) ((c form c (c (? . 46) q with-autorelease)) q (42318 . 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 (29530 . 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 (50154 . 2)) ((c def c (c (? . 10) q objc_msgSendSuper/typed)) q (41132 . 9)) ((c def c (c (? . 9) q end-atomic)) q (32687 . 2)) ((c form c (c (? . 3) q _s32vector)) q (20461 . 3)) ((c def c (c (? . 6) q com-set-property!)) q (45381 . 6)) ((c def c (c (? . 3) q s32vector->list)) c (? . 12)) ((c def c (c (? . 38) q vm-eval)) q (50881 . 3)) ((c def c (c (? . 10) q sel_registerName)) q (39614 . 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 (25654 . 3)) ((c def c (c (? . 3) q list->f80vector)) c (? . 27)) ((c def c (c (? . 6) q _LCID)) q (49299 . 2)) ((c def c (c (? . 10) q objc-get-superclass)) q (39048 . 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 (34567 . 5)) ((c form c (c (? . 1) q _bytes)) q (8036 . 3)) ((c def c (c (? . 21) q cvector-type)) q (25795 . 3)) ((c def c (c (? . 17) q unsafe-poll-fd)) q (33951 . 5)) ((q form ((lib "ffi/objc.rkt") objc-unsafe!)) q (42195 . 2)) ((c def c (c (? . 6) q com-object-type)) q (43724 . 3)) ((c def c (c (? . 2) q ctype-alignof)) c (? . 39)) ((c def c (c (? . 40) q register-process-global)) q (35984 . 4)) ((c def c (c (? . 2) q _fixint)) c (? . 41)) ((c def c (c (? . 10) q objc-block)) q (39182 . 5)) ((c form c (c (? . 10) q set-ivar!)) q (38647 . 2)) ((c def c (c (? . 9) q start-atomic)) q (32651 . 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 (49242 . 2)) ((c def c (c (? . 6) q com-object-clsid)) q (43394 . 3)) ((c def c (c (? . 2) q ctype-c->scheme)) c (? . 30)) ((c def c (c (? . 22) q security-guard-check-file)) q (49781 . 5)) ((c def c (c (? . 6) q current-hfun-retry-count)) q (48860 . 4)) ((c def c (c (? . 6) q clsid?)) q (42401 . 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 (48542 . 3)) ((c def c (c (? . 24) q os-semaphore-post)) q (36281 . 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 (23870 . 3)) ((c def c (c (? . 6) q windows-error)) q (49681 . 4)) ((c def c (c (? . 3) q make-s16vector)) c (? . 14)) ((c def c (c (? . 24) q os-thread-enabled?)) q (36125 . 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 (41432 . 4)) ((c def c (c (? . 5) q unsafe-socket->semaphore)) q (35608 . 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 (15982 . 4)) ((c def c (c (? . 6) q com-enumeration-to-list)) q (46484 . 3)) ((c def c (c (? . 9) q start-breakable-atomic)) q (32721 . 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 (39537 . 3)) ((c form c (c (? . 3) q _u64vector)) q (23141 . 3)) ((c def c (c (? . 2) q vector->cpointer)) q (51721 . 3)) ((c form c (c (? . 1) q _ptr)) q (6843 . 20)) ((c def c (c (? . 47) q call-as-nonatomic-retry-point)) q (33357 . 3)) ((c def c (c (? . 9) q in-atomic-mode?)) q (32948 . 2)) ((c def c (c (? . 1) q _sint8)) c (? . 19)) ((c def c (c (? . 17) q unsafe-make-signal-received)) q (34794 . 2)) ((q def ((lib "ffi/unsafe/nsstring.rkt") _NSString)) q (42217 . 2)) ((c def c (c (? . 1) q _string)) q (3697 . 2)) ((c def c (c (? . 6) q com-iunknown?)) q (46729 . 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 (34240 . 5)) ((c def c (c (? . 10) q objc-dispose-class)) q (39116 . 3)) ((c form c (c (? . 25) q convention:hyphen->PascalCase)) q (29493 . 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 (22261 . 3)) ((c def c (c (? . 2) q make-sized-byte-string)) q (16257 . 4)) ((c def c (c (? . 21) q cvector)) q (25566 . 4)) ((c def c (c (? . 1) q _intmax)) c (? . 43)) ((c def c (c (? . 6) q com-object-get-iunknown)) q (46560 . 3)) ((c def c (c (? . 1) q array-length)) q (10916 . 3)) ((c def c (c (? . 6) q com-unregister-event-callback)) q (46301 . 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 (31373 . 5)) ((c def c (c (? . 37) q make-custodian-at-root)) q (32600 . 2)) ((c def c (c (? . 44) q winapi)) q (50774 . 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 (43566 . 4)) ((c def c (c (? . 3) q u8vector->cpointer)) c (? . 20)) ((c def c (c (? . 6) q com-methods)) q (43883 . 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 (51790 . 3)) ((c def c (c (? . 6) q com-release)) q (43214 . 3)) ((c def c (c (? . 1) q default-_string-type)) q (3722 . 4)) ((c def c (c (? . 10) q object_getInstanceVariable)) q (40711 . 4)) ((c def c (c (? . 3) q u64vector?)) c (? . 4)) ((c def c (c (? . 46) q call-with-autorelease)) q (42244 . 3)) ((c form c (c (? . 21) q _cvector)) q (25401 . 3)) ((c def c (c (? . 2) q ffi-obj)) q (52463 . 4)) ((c form c (c (? . 1) q define-cpointer-type)) q (27176 . 10)) ((c def c (c (? . 2) q malloc-immobile-cell)) q (15844 . 3)) ((c def c (c (? . 6) q com-type=?)) q (43796 . 4)) ((c def c (c (? . 1) q _ssize)) c (? . 43)) ((c def c (c (? . 1) q cblock->vector)) q (52318 . 5)) ((c form c (c (? . 3) q _f80vector)) q (25353 . 3)) ((c form c (c (? . 6) q _wfun)) q (48447 . 3)) ((c def c (c (? . 10) q _Ivar)) q (40937 . 2)) ((c def c (c (? . 10) q objc_registerClassPair)) q (39796 . 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 (19581 . 3)) ((c def c (c (? . 26) q deallocator)) q (29902 . 8)) ((c def c (c (? . 6) q com-get-property-type)) q (44530 . 6)) ((c def c (c (? . 6) q type-described-description)) q (47150 . 3)) ((c def c (c (? . 6) q com-omit?)) q (44363 . 3)) ((c def c (c (? . 3) q u64vector)) c (? . 4)) ((c def c (c (? . 1) q cblock->list)) q (52177 . 5)) ((c def c (c (? . 17) q unsafe-poll-ctx-fd-wakeup)) q (34096 . 5)) ((c def c (c (? . 2) q ffi-call-maker)) q (53641 . 17)) ((c def c (c (? . 36) q com-all-coclasses)) q (47243 . 2)) ((c def c (c (? . 2) q _string/utf-16)) q (3446 . 2)) ((c def c (c (? . 6) q clsid->progid)) q (42887 . 3)) ((c def c (c (? . 10) q object_getClass)) q (39866 . 3)) ((c def c (c (? . 10) q _BOOL)) q (37131 . 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 (45569 . 3)) ((c def c (c (? . 24) q call-in-os-thread)) q (36170 . 3)) ((c def c (c (? . 47) q try-atomic)) q (33439 . 9)) ((c form c (c (? . 3) q _s16vector)) q (18777 . 3)) ((c def c (c (? . 1) q cast)) q (52062 . 5)) ((c def c (c (? . 2) q saved-errno)) q (51867 . 4)) ((c def c (c (? . 6) q SysAllocStringLen)) q (49432 . 4)) ((c form c (c (? . 1) q ->)) q (6774 . 2)) ((c def c (c (? . 2) q free)) q (15716 . 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 (36470 . 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 (49219 . 2)) ((c def c (c (? . 21) q cvector-ref)) q (25927 . 4)) ((c def c (c (? . 3) q s8vector)) c (? . 7)) ((c def c (c (? . 2) q make-late-weak-hasheq)) q (16162 . 3)) ((c form c (c (? . 10) q super-tell)) q (38529 . 3)) ((c def c (c (? . 6) q QueryInterface)) q (47761 . 7)) ((c form c (c (? . 6) q define-com-interface)) q (47488 . 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 (43669 . 3)) ((c def c (c (? . 9) q uninterruptible-lock-release)) q (33280 . 3)) ((c def c (c (? . 2) q offset-ptr?)) q (12566 . 3)) ((c form c (c (? . 10) q tell)) q (37199 . 9)) ((c def c (c (? . 21) q list->cvector)) q (26218 . 4)) ((c def c (c (? . 1) q _file)) q (3827 . 2)) ((c def c (c (? . 36) q com-all-controls)) q (47296 . 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 : '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-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
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?
