26929
((3) 0 () 50 ((q quote #%foreign) (q lib "ffi/unsafe/com.rkt") (q lib "ffi/vector.rkt") (q lib "ffi/unsafe.rkt") (q 2641 . 16) (q 20063 . 22) (q 2921 . 6) (q lib "ffi/unsafe/objc.rkt") (q lib "ffi/unsafe/port.rkt") (q 20892 . 24) (q 2272 . 13) (q 19183 . 23) (q lib "ffi/unsafe/alloc.rkt") (q 22743 . 22) (q lib "ffi/unsafe/cvector.rkt") (q 17550 . 22) (q lib "ffi/com-registry.rkt") (q lib "ffi/unsafe/schedule.rkt") (q 2499 . 4) (q 24201 . 22) (q lib "ffi/file.rkt") (q 21863 . 23) (q 18379 . 22) (q 16760 . 22) (q 23472 . 22) (q lib "ffi/unsafe/atomic.rkt") (q 16050 . 22) (q lib "ffi/unsafe/os-async-channel.rkt") (q 50831 . 7) (q 3021 . 3) (q lib "ffi/unsafe/define.rkt") (q 50992 . 7) (q 1896 . 5) (q lib "ffi/unsafe/global.rkt") (q 2582 . 4) (q lib "ffi/winapi.rkt") (q 3111 . 4) (q lib "ffi/unsafe/custodian.rkt") (q lib "ffi/unsafe/os-thread.rkt") (q 12625 . 25) (q 3470 . 4) (q 3386 . 4) (q 3066 . 3) (q lib "ffi/unsafe/collect-callback.rkt") (q lib "ffi/unsafe/try-atomic.rkt") (q 26002 . 17) (q lib "ffi/unsafe/define/conventions.rkt") (q 27292 . 7) (q lib "ffi/unsafe/nsalloc.rkt") (q lib "ffi/unsafe/vm.rkt")) () (h ! (equal) ((c def c (c (? . 0) q end-stubborn-change)) q (15326 . 3)) ((c def c (c (? . 2) q s64vector-ref)) c (? . 9)) ((c def c (c (? . 12) q deallocator)) q (29031 . 4)) ((c def c (c (? . 0) q free)) q (15270 . 3)) ((c def c (c (? . 1) q type-description?)) q (45098 . 3)) ((q def ((lib "ffi/unsafe/nsstring.rkt") _NSString)) q (40455 . 2)) ((c def c (c (? . 0) q lookup-errno)) q (50230 . 3)) ((c def c (c (? . 1) q guid?)) q (40588 . 3)) ((c def c (c (? . 33) q register-process-global)) q (34299 . 4)) ((c def c (c (? . 2) q list->u32vector)) c (? . 5)) ((c def c (c (? . 3) q _ubyte)) c (? . 18)) ((c def c (c (? . 3) q _ullong)) c (? . 4)) ((c def c (c (? . 1) q AddRef)) q (46257 . 3)) ((c def c (c (? . 0) q set-ptr-offset!)) q (12340 . 5)) ((c def c (c (? . 0) q ffi-obj-name)) c (? . 28)) ((c def c (c (? . 7) q objc_registerClassPair)) q (38025 . 3)) ((c def c (c (? . 3) q _sint8)) c (? . 10)) ((c def c (c (? . 3) q _ptrdiff)) c (? . 6)) ((c def c (c (? . 0) q memcpy)) q (13781 . 13)) ((c def c (c (? . 49) q vm-primitive)) q (49068 . 3)) ((c def c (c (? . 1) q com-invoke)) q (42460 . 5)) ((c def c (c (? . 8) q unsafe-file-descriptor->semaphore)) q (33741 . 5)) ((c def c (c (? . 25) q start-breakable-atomic)) q (31403 . 2)) ((c form c (c (? . 30) q provide-protected)) q (28770 . 2)) ((c def c (c (? . 0) q saved-errno)) q (50117 . 4)) ((c def c (c (? . 3) q _uintptr)) c (? . 4)) ((c def c (c (? . 2) q s16vector?)) c (? . 15)) ((c def c (c (? . 0) q ffi-callback)) q (52601 . 15)) ((c def c (c (? . 3) q _union)) q (11147 . 3)) ((c def c (c (? . 2) q u32vector-ref)) c (? . 5)) ((c def c (c (? . 1) q _LCID)) q (47549 . 2)) ((c def c (c (? . 3) q cpointer-predicate-procedure?)) q (27217 . 3)) ((c def c (c (? . 2) q u8vector)) c (? . 26)) ((c def c (c (? . 1) q com-get-active-object)) q (41528 . 3)) ((c form c (c (? . 2) q _s8vector)) q (17504 . 3)) ((c def c (c (? . 2) q u32vector->list)) c (? . 5)) ((c form c (c (? . 3) q _vector)) q (7692 . 2)) ((c def c (c (? . 3) q _uintmax)) c (? . 6)) ((c def c (c (? . 0) q prop:cpointer)) q (16004 . 2)) ((c def c (c (? . 3) q _size)) c (? . 6)) ((c def c (c (? . 7) q objc_msgSend/typed)) q (39189 . 6)) ((c def c (c (? . 7) q objc-get-class)) q (37219 . 3)) ((c def c (c (? . 8) q unsafe-fd->evt)) q (34103 . 5)) ((c def c (c (? . 7) q _Ivar)) q (39166 . 2)) ((c def c (c (? . 2) q s64vector?)) c (? . 9)) ((c def c (c (? . 3) q _string*/utf-8)) c (? . 40)) ((c def c (c (? . 0) q ctype-basetype)) c (? . 31)) ((c def c (c (? . 2) q f32vector->list)) c (? . 13)) ((c def c (c (? . 16) q coclass->clsid)) q (45598 . 3)) ((c def c (c (? . 2) q make-s32vector)) c (? . 11)) ((c def c (c (? . 1) q com-create-instance)) q (41271 . 4)) ((c def c (c (? . 0) q _uint64)) c (? . 10)) ((c def c (c (? . 2) q s32vector->cpointer)) c (? . 11)) ((c form c (c (? . 1) q _hfun)) q (46887 . 5)) ((c def c (c (? . 1) q com-set-properties)) q (43292 . 3)) ((c def c (c (? . 14) q cvector-length)) q (25262 . 3)) ((c def c (c (? . 3) q set-ffi-obj!)) q (941 . 6)) ((c def c (c (? . 7) q objc_allocateClassPair)) q (37903 . 5)) ((c def c (c (? . 12) q retainer)) q (29300 . 5)) ((c def c (c (? . 2) q f32vector->cpointer)) c (? . 13)) ((c def c (c (? . 17) q unsafe-poll-ctx-eventmask-wakeup)) q (32555 . 5)) ((c def c (c (? . 3) q _long)) c (? . 4)) ((c def c (c (? . 7) q YES)) q (35469 . 2)) ((c form c (c (? . 2) q _u64vector)) q (22695 . 3)) ((c def c (c (? . 2) q s32vector-length)) c (? . 11)) ((c def c (c (? . 3) q _string/eof)) q (3738 . 2)) ((c def c (c (? . 2) q s64vector)) c (? . 9)) ((c def c (c (? . 3) q ctype->layout)) q (2053 . 4)) ((c def c (c (? . 1) q SysAllocStringLen)) q (47682 . 4)) ((c def c (c (? . 44) q try-atomic)) q (31754 . 9)) ((c def c (c (? . 14) q cvector->list)) q (25707 . 3)) ((c def c (c (? . 7) q objc-block)) q (37497 . 5)) ((c def c (c (? . 2) q s64vector-length)) c (? . 9)) ((c def c (c (? . 12) q releaser)) q (29167 . 4)) ((c def c (c (? . 2) q list->s16vector)) c (? . 15)) ((c def c (c (? . 16) q clsid->coclass)) q (45670 . 3)) ((c def c (c (? . 1) q current-hfun-retry-count)) q (47110 . 4)) ((c def c (c (? . 20) q security-guard-check-network)) q (48660 . 9)) ((c form c (c (? . 1) q define-com-interface)) q (45738 . 8)) ((c def c (c (? . 1) q com-get-property*)) q (43163 . 5)) ((c def c (c (? . 7) q class_getSuperclass)) q (38156 . 3)) ((c def c (c (? . 0) q _void)) q (3252 . 2)) ((c def c (c (? . 1) q _HRESULT)) q (47523 . 2)) ((c def c (c (? . 1) q com-iunknown?)) q (44979 . 3)) ((c def c (c (? . 0) q ffi-callback?)) q (53769 . 3)) ((c def c (c (? . 3) q ffi-lib)) q (54 . 13)) ((c def c (c (? . 0) q vector->cpointer)) q (49971 . 3)) ((c def c (c (? . 8) q unsafe-port->socket)) q (33658 . 3)) ((c def c (c (? . 2) q f32vector-set!)) c (? . 13)) ((c def c (c (? . 2) q f32vector-ref)) c (? . 13)) ((c def c (c (? . 2) q f80vector->cpointer)) c (? . 19)) ((c def c (c (? . 1) q make-com-object)) q (46439 . 7)) ((c def c (c (? . 2) q s16vector)) c (? . 15)) ((c form c (c (? . 7) q define-objc-mixin)) q (36705 . 6)) ((c def c (c (? . 17) q unsafe-poll-ctx-milliseconds-wakeup)) q (32715 . 5)) ((c form c (c (? . 3) q define-cstruct)) q (8900 . 21)) ((c form c (c (? . 3) q _box)) q (7198 . 2)) ((c def c (c (? . 2) q list->s32vector)) c (? . 11)) ((c def c (c (? . 0) q cpointer?)) q (11835 . 3)) ((c def c (c (? . 3) q _byte)) c (? . 18)) ((c def c (c (? . 2) q u64vector-ref)) c (? . 21)) ((c form c (c (? . 2) q _f64vector)) q (24153 . 3)) ((c form c (c (? . 3) q define-c)) q (1397 . 2)) ((c def c (c (? . 17) q unsafe-signal-received)) q (33063 . 2)) ((c def c (c (? . 3) q list->cblock)) q (49191 . 9)) ((c def c (c (? . 3) q _string/locale)) c (? . 41)) ((c def c (c (? . 2) q s8vector-ref)) c (? . 23)) ((c def c (c (? . 2) q s16vector->cpointer)) c (? . 15)) ((c def c (c (? . 1) q com-omit)) q (42588 . 2)) ((c def c (c (? . 2) q f80vector-ref)) c (? . 19)) ((c def c (c (? . 3) q _sint32)) c (? . 10)) ((c def c (c (? . 3) q _sint64)) c (? . 10)) ((c def c (c (? . 20) q _file/guard)) q (48218 . 4)) ((c def c (c (? . 3) q function-ptr)) q (6499 . 4)) ((c def c (c (? . 1) q com-events)) q (43819 . 3)) ((c def c (c (? . 0) q malloc)) q (14553 . 16)) ((c form c (c (? . 2) q _s32vector)) q (20015 . 3)) ((c def c (c (? . 2) q u64vector)) c (? . 21)) ((c def c (c (? . 1) q string->iid)) q (40865 . 3)) ((c def c (c (? . 2) q s32vector?)) c (? . 11)) ((c def c (c (? . 7) q objc-set-class!)) q (37279 . 4)) ((c def c (c (? . 2) q u16vector)) c (? . 22)) ((c form c (c (? . 7) q with-blocking-tell)) q (37652 . 2)) ((c def c (c (? . 1) q com-type=?)) q (42046 . 4)) ((c def c (c (? . 2) q s64vector->cpointer)) c (? . 9)) ((c def c (c (? . 0) q _ufixnum)) c (? . 29)) ((c form c (c (? . 7) q tellv)) q (35772 . 3)) ((c def c (c (? . 1) q clsid->progid)) q (41125 . 3)) ((c def c (c (? . 2) q list->u16vector)) c (? . 22)) ((c def c (c (? . 3) q ffi-obj-ref)) q (1440 . 5)) ((c def c (c (? . 2) q list->f64vector)) c (? . 24)) ((c def c (c (? . 2) q s8vector?)) c (? . 23)) ((c def c (c (? . 2) q make-s64vector)) c (? . 9)) ((c def c (c (? . 3) q _cprocedure)) q (4019 . 27)) ((c def c (c (? . 0) q _scheme)) q (3846 . 2)) ((c def c (c (? . 2) q f64vector->list)) c (? . 24)) ((c def c (c (? . 0) q ffi-call)) q (51189 . 19)) ((c def c (c (? . 3) q _uint)) c (? . 4)) ((c def c (c (? . 1) q com-object-clsid)) q (41644 . 3)) ((c def c (c (? . 25) q end-breakable-atomic)) q (31449 . 2)) ((c form c (c (? . 1) q _hmfun)) q (47040 . 2)) ((c def c (c (? . 1) q string->guid)) q (40741 . 3)) ((c def c (c (? . 0) q compiler-sizeof)) q (2160 . 3)) ((c def c (c (? . 35) q winapi)) q (49024 . 2)) ((c def c (c (? . 1) q com-register-event-callback)) q (44229 . 9)) ((c def c (c (? . 2) q u32vector-set!)) c (? . 5)) ((c def c (c (? . 0) q free-immobile-cell)) q (15465 . 3)) ((c def c (c (? . 2) q u16vector->list)) c (? . 22)) ((c def c (c (? . 0) q ctype-sizeof)) c (? . 32)) ((c def c (c (? . 1) q guid=?)) q (40981 . 4)) ((c def c (c (? . 7) q _Class)) q (35373 . 2)) ((c def c (c (? . 2) q f64vector?)) c (? . 24)) ((c def c (c (? . 27) q make-os-async-channel)) q (34728 . 2)) ((c form c (c (? . 7) q super-tell)) q (36844 . 3)) ((c def c (c (? . 0) q make-cstruct-type)) q (7846 . 12)) ((c def c (c (? . 14) q cvector-type)) q (25349 . 3)) ((c def c (c (? . 8) q unsafe-socket->port)) q (33392 . 5)) ((c form c (c (? . 7) q selector)) q (37013 . 2)) ((c def c (c (? . 14) q cvector)) q (25120 . 4)) ((c def c (c (? . 7) q _BOOL)) q (35446 . 2)) ((c def c (c (? . 2) q u8vector-set!)) c (? . 26)) ((c def c (c (? . 20) q security-guard-check-file)) q (48031 . 5)) ((c form c (c (? . 2) q _u16vector)) q (19135 . 3)) ((c def c (c (? . 2) q make-f64vector)) c (? . 24)) ((c def c (c (? . 2) q s32vector-ref)) c (? . 11)) ((c def c (c (? . 1) q type-described-description)) q (45400 . 3)) ((c form c (c (? . 3) q _?)) q (6693 . 2)) ((c def c (c (? . 2) q f32vector?)) c (? . 13)) ((c def c (c (? . 1) q com-unregister-event-callback)) q (44551 . 4)) ((c form c (c (? . 7) q import-class)) q (35836 . 2)) ((c def c (c (? . 2) q make-f32vector)) c (? . 13)) ((c def c (c (? . 38) q os-semaphore-post)) q (34596 . 3)) ((c def c (c (? . 0) q make-array-type)) q (9927 . 4)) ((c def c (c (? . 2) q u16vector-ref)) c (? . 22)) ((c def c (c (? . 27) q os-async-channel?)) q (34785 . 3)) ((c def c (c (? . 3) q void/reference-sink)) q (15937 . 3)) ((c form c (c (? . 46) q convention:hyphen->underscore)) q (28816 . 2)) ((c def c (c (? . 0) q _fpointer)) q (3871 . 2)) ((c def c (c (? . 2) q s16vector->list)) c (? . 15)) ((c def c (c (? . 2) q f32vector)) c (? . 13)) ((c def c (c (? . 2) q u16vector-length)) c (? . 22)) ((c def c (c (? . 0) q ffi-callback-maker)) q (53205 . 14)) ((c def c (c (? . 14) q cvector-ref)) q (25481 . 4)) ((c def c (c (? . 2) q s64vector-set!)) c (? . 9)) ((c def c (c (? . 12) q allocator)) q (28889 . 4)) ((c def c (c (? . 3) q _word)) c (? . 34)) ((c def c (c (? . 25) q in-atomic-mode?)) q (31630 . 2)) ((c def c (c (? . 37) q register-custodian-shutdown)) q (29477 . 13)) ((c form c (c (? . 7) q tell)) q (35514 . 9)) ((c def c (c (? . 0) q set-cpointer-tag!)) q (14460 . 4)) ((c def c (c (? . 0) q ffi-obj-lib)) c (? . 28)) ((c def c (c (? . 1) q windows-error)) q (47931 . 4)) ((c def c (c (? . 2) q s8vector-set!)) c (? . 23)) ((c def c (c (? . 1) q type-describe)) q (45222 . 4)) ((c def c (c (? . 3) q default-_string-type)) q (3582 . 4)) ((c form c (c (? . 3) q _list)) q (7237 . 21)) ((c def c (c (? . 2) q s16vector-set!)) c (? . 15)) ((c def c (c (? . 3) q _cpointer/null)) c (? . 45)) ((c def c (c (? . 3) q _sint16)) c (? . 10)) ((c def c (c (? . 3) q cblock->list)) q (50427 . 5)) ((c def c (c (? . 1) q SysFreeString)) q (47619 . 3)) ((c def c (c (? . 0) q _ufixint)) c (? . 42)) ((c def c (c (? . 1) q com-object?)) q (41204 . 3)) ((c form c (c (? . 1) q _wfun)) q (46697 . 3)) ((c def c (c (? . 3) q union-ref)) q (11262 . 4)) ((c def c (c (? . 8) q unsafe-file-descriptor->port)) q (33166 . 6)) ((c def c (c (? . 2) q f32vector-length)) c (? . 13)) ((c def c (c (? . 2) q s32vector->list)) c (? . 11)) ((c form c (c (? . 2) q _f80vector)) q (24907 . 3)) ((c def c (c (? . 0) q _uint16)) c (? . 10)) ((c def c (c (? . 2) q u64vector-length)) c (? . 21)) ((c def c (c (? . 0) q _stdbool)) q (3203 . 2)) ((c def c (c (? . 2) q u8vector-length)) c (? . 26)) ((c def c (c (? . 0) q _fixnum)) c (? . 29)) ((c def c (c (? . 2) q u16vector?)) c (? . 22)) ((c def c (c (? . 2) q list->s64vector)) c (? . 9)) ((c def c (c (? . 1) q com-type?)) q (41919 . 3)) ((c def c (c (? . 1) q IID_NULL)) q (47787 . 2)) ((c def c (c (? . 2) q u8vector->cpointer)) c (? . 26)) ((c def c (c (? . 3) q get-ffi-obj)) q (704 . 6)) ((c def c (c (? . 43) q unsafe-add-collect-callbacks)) q (35146 . 4)) ((c def c (c (? . 14) q cvector-ptr)) q (25414 . 3)) ((c def c (c (? . 2) q make-s16vector)) c (? . 15)) ((c def c (c (? . 0) q make-late-will-executor)) q (53828 . 2)) ((c form c (c (? . 30) q define-ffi-definer)) q (28251 . 8)) ((c def c (c (? . 25) q end-atomic)) q (31369 . 2)) ((c def c (c (? . 0) q _string/ucs-4)) q (3275 . 2)) ((c def c (c (? . 7) q objc_msgSend/typed/blocking)) q (39785 . 9)) ((c form c (c (? . 3) q define-fun-syntax)) q (6644 . 2)) ((c def c (c (? . 1) q _IUnknown_vt)) q (47901 . 2)) ((c def c (c (? . 27) q os-async-channel-try-get)) q (34944 . 4)) ((c def c (c (? . 0) q ptr-offset)) q (12196 . 3)) ((c def c (c (? . 3) q array-length)) q (10479 . 3)) ((c form c (c (? . 3) q define-cpointer-type)) q (26730 . 10)) ((c def c (c (? . 0) q memmove)) q (13375 . 13)) ((c def c (c (? . 2) q s16vector-length)) c (? . 15)) ((c def c (c (? . 3) q vector->cblock)) q (49576 . 9)) ((c def c (c (? . 3) q _racket)) q (3821 . 2)) ((c def c (c (? . 0) q ffi-call-maker)) q (51891 . 17)) ((c def c (c (? . 2) q u8vector-ref)) c (? . 26)) ((c def c (c (? . 2) q u32vector-length)) c (? . 5)) ((c def c (c (? . 0) q make-late-weak-hasheq)) q (15716 . 3)) ((c def c (c (? . 1) q com-object-set-clsid!)) q (41714 . 4)) ((c def c (c (? . 1) q _IUnknown)) q (47839 . 2)) ((c def c (c (? . 17) q unsafe-set-sleep-in-thread!)) q (32882 . 5)) ((c def c (c (? . 3) q _array/vector)) q (10957 . 4)) ((c def c (c (? . 7) q _id)) q (35352 . 2)) ((c def c (c (? . 1) q com-make-event-executor)) q (44168 . 2)) ((c def c (c (? . 3) q array-type)) q (10556 . 3)) ((c def c (c (? . 0) q ptr-equal?)) q (11890 . 4)) ((c def c (c (? . 3) q _sshort)) c (? . 4)) ((c def c (c (? . 3) q _bitmask)) q (11710 . 4)) ((c def c (c (? . 14) q list->cvector)) q (25772 . 4)) ((c def c (c (? . 1) q progid->clsid)) q (41056 . 3)) ((c form c (c (? . 3) q _ptr)) q (6703 . 18)) ((c def c (c (? . 2) q f80vector-set!)) c (? . 19)) ((c def c (c (? . 0) q ctype-c->scheme)) c (? . 31)) ((c def c (c (? . 3) q compute-offsets)) q (9695 . 6)) ((c def c (c (? . 0) q ctype-alignof)) c (? . 32)) ((c def c (c (? . 0) q _double*)) c (? . 36)) ((c def c (c (? . 3) q array-set!)) q (10303 . 5)) ((c def c (c (? . 7) q NO)) q (35492 . 2)) ((c def c (c (? . 3) q _sllong)) c (? . 4)) ((c def c (c (? . 25) q call-as-nonatomic)) q (31560 . 3)) ((c def c (c (? . 0) q ptr-ref)) c (? . 39)) ((c def c (c (? . 3) q union?)) q (11210 . 3)) ((c def c (c (? . 2) q f64vector->cpointer)) c (? . 24)) ((c def c (c (? . 1) q com-get-property-type)) q (42780 . 6)) ((c def c (c (? . 33) q get-place-table)) q (34401 . 2)) ((c form c (c (? . 3) q _fun)) q (5513 . 26)) ((c def c (c (? . 7) q object_setInstanceVariable)) q (39045 . 5)) ((c def c (c (? . 17) q unsafe-poll-fd)) q (32266 . 5)) ((c def c (c (? . 0) q _path)) q (3338 . 2)) ((c def c (c (? . 3) q _sword)) c (? . 34)) ((c def c (c (? . 2) q u64vector->cpointer)) c (? . 21)) ((c def c (c (? . 35) q win64?)) q (48998 . 2)) ((c def c (c (? . 1) q QueryInterface)) q (46011 . 7)) ((c form c (c (? . 2) q _u32vector)) q (20844 . 3)) ((c def c (c (? . 1) q com-set-property-type)) q (43404 . 6)) ((c def c (c (? . 0) q _float)) c (? . 36)) ((c def c (c (? . 3) q cast)) q (50312 . 5)) ((c def c (c (? . 2) q list->s8vector)) c (? . 23)) ((c def c (c (? . 3) q _int)) c (? . 4)) ((c def c (c (? . 3) q _array)) q (10041 . 4)) ((c def c (c (? . 2) q f64vector-ref)) c (? . 24)) ((c def c (c (? . 3) q array?)) q (10152 . 3)) ((c def c (c (? . 3) q union-set!)) q (11355 . 5)) ((c def c (c (? . 3) q register-finalizer)) q (15536 . 4)) ((c def c (c (? . 37) q unregister-custodian-shutdown)) q (30067 . 5)) ((c def c (c (? . 2) q u64vector?)) c (? . 21)) ((c def c (c (? . 1) q LOCALE_SYSTEM_DEFAULT)) q (47572 . 2)) ((c def c (c (? . 16) q com-all-controls)) q (45546 . 2)) ((c def c (c (? . 2) q u16vector->cpointer)) c (? . 22)) ((c def c (c (? . 14) q make-cvector*)) q (25861 . 5)) ((c def c (c (? . 3) q _slong)) c (? . 4)) ((c def c (c (? . 38) q call-in-os-thread)) q (34485 . 3)) ((c def c (c (? . 2) q f80vector-length)) c (? . 19)) ((c def c (c (? . 1) q com-set-property!)) q (43631 . 6)) ((c def c (c (? . 3) q _llong)) c (? . 4)) ((c def c (c (? . 0) q ptr-set!)) c (? . 39)) ((c form c (c (? . 3) q ->)) q (6634 . 2)) ((c def c (c (? . 2) q s32vector-set!)) c (? . 11)) ((c def c (c (? . 1) q com-object-get-iunknown)) q (44810 . 3)) ((c def c (c (? . 3) q _string*/latin-1)) c (? . 40)) ((c def c (c (? . 1) q com-object-get-idispatch)) q (44893 . 3)) ((c def c (c (? . 0) q ptr-add)) q (11989 . 5)) ((c def c (c (? . 3) q _wchar)) q (2558 . 2)) ((c def c (c (? . 3) q union-ptr)) q (11468 . 3)) ((c def c (c (? . 14) q cvector-set!)) q (25582 . 5)) ((c def c (c (? . 14) q cvector?)) q (25208 . 3)) ((c def c (c (? . 2) q s16vector-ref)) c (? . 15)) ((c def c (c (? . 25) q start-atomic)) q (31333 . 2)) ((c def c (c (? . 3) q _short)) c (? . 4)) ((c def c (c (? . 0) q malloc-immobile-cell)) q (15398 . 3)) ((c def c (c (? . 3) q _enum)) q (11525 . 5)) ((c def c (c (? . 2) q make-u64vector)) c (? . 21)) ((c def c (c (? . 37) q register-finalizer-and-custodian-shutdown)) q (30237 . 17)) ((c def c (c (? . 2) q s64vector->list)) c (? . 9)) ((c def c (c (? . 0) q _int64)) c (? . 10)) ((c def c (c (? . 0) q flvector->cpointer)) q (50040 . 3)) ((c form c (c (? . 14) q _cvector)) q (24955 . 3)) ((c def c (c (? . 38) q os-semaphore-wait)) q (34662 . 3)) ((c form c (c (? . 3) q _bytes)) q (7744 . 3)) ((c def c (c (? . 20) q _file/r)) q (48379 . 2)) ((c form c (c (? . 3) q _bytes/nul-terminated)) q (7780 . 3)) ((c def c (c (? . 3) q _ulong)) c (? . 4)) ((c def c (c (? . 2) q s8vector)) c (? . 23)) ((c def c (c (? . 30) q make-not-available)) q (28680 . 3)) ((c def c (c (? . 2) q f80vector->list)) c (? . 19)) ((c def c (c (? . 25) q call-as-atomic)) q (31493 . 3)) ((c form c (c (? . 7) q self)) q (36832 . 2)) ((c def c (c (? . 7) q _Protocol)) q (35397 . 2)) ((c def c (c (? . 3) q _intptr)) c (? . 4)) ((c def c (c (? . 1) q type-described?)) q (45161 . 3)) ((c def c (c (? . 7) q class_addIvar)) q (38562 . 11)) ((c def c (c (? . 3) q _string*/locale)) c (? . 40)) ((c def c (c (? . 2) q f64vector)) c (? . 24)) ((c def c (c (? . 14) q make-cvector)) q (25005 . 4)) ((c form c (c (? . 2) q _f32vector)) q (23424 . 3)) ((c def c (c (? . 7) q objc-dispose-class)) q (37431 . 3)) ((c def c (c (? . 0) q offset-ptr?)) q (12129 . 3)) ((c def c (c (? . 3) q array-ref)) q (10204 . 4)) ((c def c (c (? . 7) q _objc_super)) q (39756 . 2)) ((c def c (c (? . 0) q ctype?)) q (1844 . 3)) ((c def c (c (? . 2) q make-f80vector)) c (? . 19)) ((c def c (c (? . 1) q com-get-property)) q (42995 . 5)) ((c def c (c (? . 3) q _array/list)) q (10841 . 4)) ((c def c (c (? . 1) q com-release)) q (41464 . 3)) ((c def c (c (? . 1) q guid->string)) q (40924 . 3)) ((c def c (c (? . 3) q _list-struct)) q (8423 . 10)) ((c def c (c (? . 3) q _file)) q (3687 . 2)) ((c def c (c (? . 17) q unsafe-poller)) q (32141 . 3)) ((c def c (c (? . 27) q os-async-channel-put)) q (34848 . 4)) ((c def c (c (? . 0) q _double)) c (? . 36)) ((c def c (c (? . 1) q _GUID)) q (47469 . 2)) ((c def c (c (? . 2) q s8vector->cpointer)) c (? . 23)) ((c def c (c (? . 2) q f80vector)) c (? . 19)) ((c def c (c (? . 3) q _string/utf-8)) c (? . 41)) ((c def c (c (? . 0) q _fixint)) c (? . 42)) ((c def c (c (? . 37) q make-custodian-at-root)) q (31282 . 2)) ((c def c (c (? . 7) q _SEL)) q (35424 . 2)) ((c def c (c (? . 16) q com-all-coclasses)) q (45493 . 2)) ((c def c (c (? . 2) q make-u32vector)) c (? . 5)) ((c def c (c (? . 1) q current-hfun-retry-delay)) q (47265 . 4)) ((c def c (c (? . 0) q _int32)) c (? . 10)) ((c def c (c (? . 2) q u8vector->list)) c (? . 26)) ((c def c (c (? . 0) q ffi-lib?)) q (0 . 3)) ((c def c (c (? . 2) q list->f80vector)) c (? . 19)) ((c def c (c (? . 0) q _symbol)) q (3361 . 2)) ((c def c (c (? . 1) q com-object-type)) q (41974 . 3)) ((c def c (c (? . 2) q u32vector?)) c (? . 5)) ((c def c (c (? . 0) q cpointer-tag)) q (14397 . 3)) ((c form c (c (? . 2) q _u8vector)) q (16714 . 3)) ((c def c (c (? . 38) q os-thread-enabled?)) q (34440 . 2)) ((c def c (c (? . 0) q ptr-add!)) q (12486 . 5)) ((c def c (c (? . 43) q unsafe-remove-collect-callbacks)) q (35274 . 3)) ((c def c (c (? . 44) q call-as-nonatomic-retry-point)) q (31672 . 3)) ((c def c (c (? . 0) q make-ctype)) q (1651 . 5)) ((c def c (c (? . 2) q f80vector?)) c (? . 19)) ((c def c (c (? . 0) q ffi-obj?)) c (? . 28)) ((c def c (c (? . 38) q make-os-semaphore)) q (34557 . 2)) ((c def c (c (? . 3) q make-c-parameter)) q (1136 . 6)) ((c def c (c (? . 1) q HRESULT-retry?)) q (47388 . 3)) ((c def c (c (? . 3) q _intmax)) c (? . 6)) ((c def c (c (? . 2) q list->f32vector)) c (? . 13)) ((c def c (c (? . 0) q make-late-weak-box)) q (15651 . 3)) ((c def c (c (? . 1) q type-described-value)) q (45325 . 3)) ((c def c (c (? . 0) q make-sized-byte-string)) q (15811 . 4)) ((c def c (c (? . 1) q _GUID-pointer)) q (47492 . 2)) ((c def c (c (? . 7) q object_getInstanceVariable)) q (38940 . 4)) ((c def c (c (? . 7) q class_addMethod)) q (38224 . 11)) ((c def c (c (? . 2) q s32vector)) c (? . 11)) ((c def c (c (? . 1) q com-get-properties)) q (42668 . 3)) ((c def c (c (? . 3) q in-array)) q (10611 . 6)) ((c def c (c (? . 3) q _uword)) c (? . 34)) ((c def c (c (? . 0) q _string/utf-16)) q (3306 . 2)) ((c def c (c (? . 1) q com-method-type)) q (42238 . 6)) ((c def c (c (? . 1) q iid?)) q (40691 . 3)) ((c def c (c (? . 27) q os-async-channel-get)) q (35069 . 3)) ((c def c (c (? . 2) q make-s8vector)) c (? . 23)) ((c def c (c (? . 7) q objc_lookUpClass)) q (37692 . 3)) ((c def c (c (? . 3) q _cpointer)) c (? . 45)) ((c def c (c (? . 8) q unsafe-socket->semaphore)) q (33923 . 4)) ((c def c (c (? . 2) q s8vector->list)) c (? . 23)) ((c def c (c (? . 1) q com-event-executor?)) q (44103 . 3)) ((c def c (c (? . 2) q list->u8vector)) c (? . 26)) ((c def c (c (? . 1) q IID_IUnknown)) q (47811 . 2)) ((c form c (c (? . 7) q get-ivar)) q (36924 . 2)) ((c form c (c (? . 1) q _mfun)) q (46792 . 3)) ((c def c (c (? . 1) q com-object-eq?)) q (41816 . 4)) ((c def c (c (? . 3) q _or-null)) q (3898 . 3)) ((c def c (c (? . 3) q _sbyte)) c (? . 18)) ((c def c (c (? . 7) q objc-get-superclass)) q (37363 . 3)) ((c def c (c (? . 7) q objc-is-a?)) q (37042 . 4)) ((c def c (c (? . 0) q ffi-obj)) q (50713 . 4)) ((c def c (c (? . 3) q _bytes/eof)) q (3710 . 2)) ((c def c (c (? . 1) q com-enumerate-to-list)) q (44660 . 3)) ((c form c (c (? . 7) q define-objc-class)) q (35916 . 25)) ((c form c (c (? . 46) q convention:hyphen->camelcase)) q (28853 . 2)) ((c def c (c (? . 3) q cpointer-push-tag!)) c (? . 47)) ((c def c (c (? . 3) q _gcable)) q (3959 . 3)) ((c def c (c (? . 3) q cblock->vector)) q (50568 . 5)) ((c def c (c (? . 2) q u64vector->list)) c (? . 21)) ((q form ((lib "ffi/serialize-cstruct.rkt") define-serializable-cstruct)) q (27472 . 15)) ((c def c (c (? . 7) q objc-subclass?)) q (37124 . 4)) ((c def c (c (? . 0) q _uint32)) c (? . 10)) ((c def c (c (? . 1) q com-methods)) q (42133 . 3)) ((c def c (c (? . 17) q unsafe-make-signal-received)) q (33109 . 2)) ((c def c (c (? . 2) q f64vector-set!)) c (? . 24)) ((c def c (c (? . 3) q _ssize)) c (? . 6)) ((c def c (c (? . 0) q ctype-scheme->c)) c (? . 31)) ((c def c (c (? . 0) q _longdouble)) q (3174 . 2)) ((c def c (c (? . 1) q com-idispatch?)) q (45038 . 3)) ((c def c (c (? . 0) q _pointer)) q (3767 . 2)) ((c form c (c (? . 2) q _s16vector)) q (18331 . 3)) ((c def c (c (? . 3) q _string/latin-1)) c (? . 41)) ((c def c (c (? . 2) q u64vector-set!)) c (? . 21)) ((c def c (c (? . 1) q string->clsid)) q (40802 . 3)) ((c def c (c (? . 1) q com-enumeration-to-list)) q (44734 . 3)) ((c def c (c (? . 3) q _ushort)) c (? . 4)) ((c def c (c (? . 2) q f64vector-length)) c (? . 24)) ((c def c (c (? . 1) q Release)) q (46346 . 3)) ((c form c (c (? . 7) q import-protocol)) q (35873 . 2)) ((c def c (c (? . 2) q make-u8vector)) c (? . 26)) ((c def c (c (? . 1) q com-event-type)) q (43923 . 5)) ((c def c (c (? . 7) q objc_getProtocol)) q (37766 . 3)) ((c def c (c (? . 7) q objc_msgSendSuper/typed/blocking)) q (40094 . 9)) ((c def c (c (? . 2) q u32vector->cpointer)) c (? . 5)) ((c def c (c (? . 3) q cpointer-has-tag?)) c (? . 47)) ((c def c (c (? . 3) q array-ptr)) q (10422 . 3)) ((c def c (c (? . 7) q make-objc_super)) q (39664 . 4)) ((c form c (c (? . 7) q set-ivar!)) q (36962 . 2)) ((c def c (c (? . 0) q memset)) q (14181 . 7)) ((c def c (c (? . 20) q security-guard-check-file-link)) q (48430 . 7)) ((c def c (c (? . 7) q sel_registerName)) q (37843 . 3)) ((c def c (c (? . 0) q _uint8)) c (? . 10)) ((c def c (c (? . 1) q _IUnknown-pointer)) q (47866 . 2)) ((c def c (c (? . 1) q clsid?)) q (40639 . 3)) ((c def c (c (? . 3) q _string)) q (3557 . 2)) ((c def c (c (? . 2) q list->u64vector)) c (? . 21)) ((c def c (c (? . 2) q u32vector)) c (? . 5)) ((c def c (c (? . 2) q make-u16vector)) c (? . 22)) ((c def c (c (? . 7) q object_getClass)) q (38095 . 3)) ((c def c (c (? . 20) q _file/rw)) q (48404 . 2)) ((c form c (c (? . 48) q with-autorelease)) q (40556 . 2)) ((c def c (c (? . 2) q s8vector-length)) c (? . 23)) ((c def c (c (? . 2) q u16vector-set!)) c (? . 22)) ((c def c (c (? . 0) q _int8)) c (? . 10)) ((c def c (c (? . 48) q call-with-autorelease)) q (40482 . 3)) ((c def c (c (? . 7) q objc_msgSendSuper/typed)) q (39361 . 9)) ((c form c (c (? . 2) q _s64vector)) q (21815 . 3)) ((q form ((lib "ffi/objc.rkt") objc-unsafe!)) q (40433 . 2)) ((c def c (c (? . 8) q unsafe-port->file-descriptor)) q (33566 . 3)) ((c def c (c (? . 0) q _gcpointer)) q (3793 . 2)) ((c def c (c (? . 0) q cpointer-gcable?)) q (12268 . 3)) ((c def c (c (? . 49) q vm-eval)) q (49131 . 3)) ((c def c (c (? . 1) q com-omit?)) q (42613 . 3)) ((c def c (c (? . 0) q _int16)) c (? . 10)) ((c def c (c (? . 0) q make-union-type)) q (11075 . 3)) ((c def c (c (? . 3) q _sintptr)) c (? . 4)) ((c def c (c (? . 0) q _bool)) q (3229 . 2)) ((c def c (c (? . 17) q unsafe-poll-ctx-fd-wakeup)) q (32411 . 5)) ((c def c (c (? . 3) q _sint)) c (? . 4)) ((c def c (c (? . 2) q u8vector?)) c (? . 26))))
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) -> (and/c (-> any)
                                              (any/c -> void?))
  objname : (or/c string? bytes? symbol?)
  lib : (or/c ffi-lib? path-string? #f)
  type : ctype?
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
                  | 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
           | 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 : (one-of/c 'raw 'atomic 'nonatomic 'tagged
                           'atomic-interior '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 : (one-of/c 'raw 'atomic 'nonatomic 'tagged
                          'atomic-interior '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 : (one-of/c 'raw 'atomic 'nonatomic 'tagged
                               'atomic-interior '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 : (one-of/c '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 : (one-of/c '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 : (one-of/c 'raw 'atomic 'nonatomic 'tagged    = absent
                   'atomic-interior 'interior
                   'stubborn 'uncollectable 'eternal)
  fail-mode : (one-of/c '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
(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
            | #:wrap wrap-expr
            | #:make-fail make-fail-expr
            | #:fail fail-expr
procedure
(make-not-available name) -> (#:rest list? -> any/c)
  name : symbol?
syntax
(provide-protected provide-spec ...)
syntax
convention:hyphen->underscore
syntax
convention:hyphen->camelcase
procedure
((allocator dealloc) alloc) -> (or/c procedure? #f)
  dealloc : (any/c . -> . any)
  alloc : (or/c procedure? #f)
procedure
((deallocator [get-arg]) dealloc) -> procedure?
  get-arg : (list? . -> . any/c) = car
  dealloc : procedure?
procedure
((releaser [get-arg]) dealloc) -> procedure?
  get-arg : (list? . -> . any/c) = car
  dealloc : procedure?
procedure
((retainer release [get-arg]) retain) -> procedure?
  release : (any/c . -> . any)
  get-arg : (list? . -> . any/c) = car
  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
(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?)
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 (one-of/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?
